如何在LINQ查询中使用.Select(T,index)重载?

时间:2011-11-25 16:36:43

标签: c# linq

我想这样做:

list.Select((x, i) => new { Item = x, Index = i })

但是在LINQ查询语法中,类似于:

from x  in list
select(x, i) { Item = x, Index = i }

但这不起作用。或者也许还有另一种方法来增加LINQ查询中的范围变量?

4 个答案:

答案 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();