Быстрый вопрос, какой предпочтительный способ запрограммировать вопрос: "Существует ли ровно один элемент в этой последовательности, который удовлетворяет условию Х?" используя Linq?
то есть.
// Pretend that the .OneAndOnlyOne() method exists
int[] sequence = new int[] { 1, 1, 2, 3, 5, 8 };
Assert.IsTrue(sequence.OneAndOnlyOne(x => x == 2);
Assert.IsFalse(sequence.OneAndOnlyOne(x => x == 1);
что-то вроде этого можно сделать с помощью:
sequence.SingleOrDefault(x => x == 2) != null;
но это немного неуклюже.
Я полагаю, что мог бы использовать собственный метод расширения, но это, по-видимому, обычная модель в моем коде, и я хочу убедиться, что есть хороший чистый способ сделать это. Есть ли способ использовать встроенные методы LINQ?