如何在LINQ表达式的内部选择中包含索引值?

时间:2013-11-07 12:23:38

标签: c# linq

我有以下内容:

 var ts = _q.GetAll()
       .Where(m => m.a == 1)
       .Select(m => new MyClass 
                    {
                    Id = ???,
                    QId = m.q
                    })
       .ToList();

我如何做到这一点,以便MyClass中的Id字段获得索引 值从1开始并为每个新创建的MyClass递增?

请注意,我确实尝试指定.Select(m,index =>等但是这个 给我一个错误。

1 个答案:

答案 0 :(得分:4)

您可以使用提供索引的overload of Select

var ts = _q.GetAll()
   .Where(m => m.a == 1)
   .Select((m, index) => new MyClass 
                {
                    Id = index + 1,
                    QId = m.q
                })
   .ToList();

  

我确实尝试指定.Select(m,index =>等但这会给我一个错误

是的,因为缺少了paranthesis。