Существует ли синтаксис LINQ для (T, int) перегрузок Where и Select?

Запрос

var q = from elem in collection
        where someCondition(elem)
        select elem;

переводит на

var q = collection.Where(elem => someCondition(elem));

Есть ли синтаксис LINQ, который будет переводить на следующее?

var q = collection.Where((elem, index) => someCondition(elem, index));

1 ответ

Решение

Нет, для этого нет синтаксиса LINQ.

Простой обходной путь может быть:

var q = from elem in collection.Select((x,i) => new {x,i})
        where someCondition(elem.x,elem.i)
        select elem.x;
Другие вопросы по тегам