我的软件中有一个具有以下属性的类列表:
名称 - 数量
列表可能包含以下数据:
name1 - 12
name1 - 10
name2 - 10
name2 - 5
我需要这样的输出:
name1 - 22
name2 - 15
我可以使用凌乱的代码(对于每个等等)进行此输出但是如何使用LINQ查询提供此功能?
答案 0 :(得分:7)
您可以使用Enumerable.GroupBy和Enumerable.Sum。
它看起来类似于:
var values = theCollection
.GroupBy(item => item.Name)
.Select(g => new { Name = g.Key, Total = g.Sum(i => i.Value) });
foreach(var value in values)
Console.WriteLine("{0} - {1}", value.Name, value.Total);
答案 1 :(得分:1)
使用Sum and GroupBy然后打印结果。