在Select语句中获取列表的项索引

Nal*_*526 0 c# linq lambda

我需要在分组后将项目列表的位置编入索引

var result = from i in items
             group i by i.name into g
             select new { groupname = g.Key, 
                          index = //need to get the index of the item
                        };
Run Code Online (Sandbox Code Playgroud)

如何使用linq/lambda获取列表的项索引?

Mar*_*zek 7

我不是100%肯定你想要实现的目标,但我绝对建议使用方法而不是基于语法的查询.

var results = items.GroupBy(x => x.name)
                   .Select((g, i) => new { product = g.Key, index = i });
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望从每个组中的所有项目获取源代码索引:

var results = items.Select((x, i) => new { x, i })
                   .GroupBy(x => x.x.name)
                   .Select(g => new {
                                   product = g.Key,
                                   indexes = g.Select(x => x.i).ToList()
                               });
Run Code Online (Sandbox Code Playgroud)