如何在Linq中获得SUM

本文关键字:SUM Linq | 更新日期: 2023-09-27 18:11:03

我需要做以下操作,我有一个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

如何做到这一点?

如何在Linq中获得SUM

Id分组,然后将每组Count s相加:

var result = items.GroupBy(x => x.Id)
                  .Select(g => new { Id = g.Key, Sum = g.Sum(x => x.Count) });

试试看,

 .GroupBy(x => x.id)
 .Select(n => n.Sum(m => m.count));

以下程序…

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