Хорошо, я знаю, что Select((x, i) => ...)
не имеет литеральной формы, но у меня довольно сложный запрос, который теперь имеет новое требование, в результате чего половина проецируемых полей вывода зависит от вывода «номер строки», , Есть ли способ, даже уродливый, ввести индекс и сохранить один запрос в литеральной форме?Linq индексированный выбор (возьмите два)
Также обратите внимание, что не все исходные строки участвуют в результате, поэтому я не могу просто проецировать исходный код на перечислимые индексированные кортежи, индексы должны применяться перед окончательной проекцией и после всех объединений и wheres.
Edit:
Исходный запрос велик поэтому его бессмысленно ставить его здесь, пусть ssimplify с псевдо
from a in source
where somecondition(a)
join b in source2 on a.key equals b.key
where someothercondition(a, b)
select new
{
f1 = a.f1,
oldf2 = func(a.field, b.field),
newf2 = func(a.field, b.field, index)
// ... (20 somthing more projected fields)
}
мне нужен индекс для newf2 и мне это нужно без разделения запроса в двух запросов
Ваш вопрос непонятен. Добавьте пример кода. – jeroenh
Является ли это LINQ to SQL? –
нет, его обычный linq – mmix