Идиоматический язык C# `myList.All((item, index) => {...})`C#

Место общения программистов C#
Anonymous
Идиоматический язык C# `myList.All((item, index) => {...})`

Сообщение Anonymous »

У меня есть список на C#, и я хочу проверить, что все элементы списка соответствуют некоторому условию. Это условие зависит от элемента в списке, а также от индекса этого элемента в списке.
Не похоже, что .All(..) имеет перегрузку что дает индекс? Я хочу сделать что-то вроде:

Код: Выделить всё

bool result = list.All((element, index) => {
// for example:
return element != null && index % 2 == 0;
// (my actual condition is more complicated, but that's not the point of the question)
});
Но это не работает, поскольку не существует версии .All(...), предоставляющей индекс. Я также придумал:

Код: Выделить всё

bool result = list.Select((element, index) => {
// for example:
return element != null && index % 2 == 0;
}).All(identity => identity);
Это работает, но .All(identity =>identity) заставляет меня немного умереть внутри.
Есть ли более идиоматический способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/791 ... item-index

Вернуться в «C#»