我有一个带有CustomerId,ProductId和Count(所有整数)的未排序对象数组 我想结合CustomerId和ProductId匹配的记录,对计数求和。
例如:
CId PId Cnt
1 100 5
1 100 1
2 100 7
所需的输出:
CId PId Cnt
1 100 6
2 100 7
如您所见,CId 1和PId 100的两条记录已合并,并且计数已求和。
这可以用LINQ完成吗? 我知道可以使用循环来完成,但我希望有一种更优雅的方式
答案 0 :(得分:5)
这里我假设类名是Item
:
var result = array.GroupBy(x => new { x.CId, x.PId })
.Select(g => new Item { CId = g.Key.CId, PId = g.Key.PId, Cnt = g.Sum(x => x.Cnt) });
这里是Live Demo