Ответ 1
Нет синтаксиса LINQ для этого.
Простым обходом может быть:
var q = from elem in collection.Select((x,i) => new {x,i})
where someCondition(elem.x,elem.i)
select elem.x;
Запрос
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));
Нет синтаксиса LINQ для этого.
Простым обходом может быть:
var q = from elem in collection.Select((x,i) => new {x,i})
where someCondition(elem.x,elem.i)
select elem.x;