我想这样做:
list.Select((x, i) => new { Item = x, Index = i })
但是在LINQ查询语法中,类似于:
from x in list
select(x, i) { Item = x, Index = i }
但这不起作用。或者也许还有另一种方法来增加LINQ查询中的范围变量?
答案 0 :(得分:6)
不,没有形式的C#查询表达式使用该重载。基本上你有作为扩展方法调用来使用那个重载。
答案 1 :(得分:0)
这是你想要的吗?
var list = new List<Foo>();
var q = from i in Enumerable.Range(0, list.Count)
select new
{
Item = list[i],
Index = i
};
答案 2 :(得分:0)
Select的重载使用整数作为“lambda”表达式的参数。
答案 3 :(得分:-1)
int index = 0;
var r = list.Select(p => new {Item = p, Index = index++ }).ToList();