0

グループ化した後、その位置で項目リストにインデックスを付ける必要があります

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
                        };

linq/lambdaを使用してリストのアイテムインデックスを取得するには?

4

2 に答える 2

7

あなたが達成しようとしていることは 100% わかりませんが、構文ベースのクエリの代わりにメソッドを使用することをお勧めします。

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

または、すべてのグループ内のすべてのアイテムのソース リフトからインデックスを取得する場合は、次のようにします。

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()
                               });
于 2013-09-04T12:00:47.723 に答える
0
var idx = 0;
var result = from i in items
             group i by i.name into g
             select new { product = g.Key, 
                          index = idx++
                        };
于 2013-09-04T12:01:07.603 に答える