为linq查询结果添加索引

fre*_*hie 7 c# linq asp.net

我有一个linq查询返回MyObject列表.我想在MyObject中添加一个名为TheIndex的属性,它包含序列中项目的纵坐标.

换句话说,我需要这样的东西:

var TheResult = from d in MyDataContext
                where.....
                select new MyObject
                {
                   Property1 = d.whatever,

                   TheIndex = ?

                 }
Run Code Online (Sandbox Code Playgroud)

查询返回MyObject列表,我希望列表中的每个项目都包含索引作为其属性之一.

谢谢.

Ada*_*kis 15

一旦你摆脱了查询语法,你就会发现一个Select重载,它为你提供了你正在寻找的索引.

var result = MyDataContext
   .Where(d => d.Prop == "A")
   .AsEnumerable()
   .Select((d, i) => 
      new MyObject() {
         Property1 = d.whatever,
         TheIndex = i
    });
Run Code Online (Sandbox Code Playgroud)