Есть ли синтаксис 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;