16

次のことを行う必要がListあります.2つの整数IDとカウントを含むクラスがあります

ここで、次の linq クエリを実行したいと思います。

get the sum of the count for each id

ただし、同じ ID を持つアイテムが存在する可能性があるため、要約する必要があります。

id=1, count=12
id=2, count=1
id=1, count=2

次のようになります。

id=1 -> sum 14
id=2 -> sum 1

これを行う方法?

4

3 に答える 3

26

でアイテムをグループ化し、各グループの をId合計ます。Count

var result = items.GroupBy(x => x.Id)
                  .Select(g => new { Id = g.Key, Sum = g.Sum(x => x.Count) });
于 2013-04-27T10:34:10.433 に答える
3

それを試してみてください 、

 .GroupBy(x => x.id)
 .Select(n => n.Sum(m => m.count));
于 2013-04-27T10:41:51.043 に答える
3

次のプログラム...

struct Item {
    public int Id;
    public int Count;
}

class Program {

    static void Main(string[] args) {

        var items = new [] {
            new Item { Id = 1, Count = 12 },
            new Item { Id = 2, Count = 1 },
            new Item { Id = 1, Count = 2 }
        };

        var results =
            from item in items
            group item by item.Id
            into g
            select new { Id = g.Key, Count = g.Sum(item => item.Count) };

        foreach (var result in results) {
            Console.Write(result.Id);
            Console.Write("\t");
            Console.WriteLine(result.Count);
        }

    }

}

...プリント:

1       14
2       1
于 2013-04-27T10:43:01.063 に答える