【问题标题】:Sum duplicated objects in an array对数组中的重复对象求和
【发布时间】:2018-10-21 20:45:45
【问题描述】:

我有一个未排序的对象数组,其中包含 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 完成吗? 我知道它可以用循环来完成,但我希望有一种更优雅的方式

【问题讨论】:

  • 查看GroupBySum

标签: c# arrays linq


【解决方案1】:

这里我假设类名是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

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 2022-12-04
    • 2022-11-19
    • 2021-05-12
    • 2019-01-22
    • 2022-01-15
    • 2016-09-05
    • 2015-11-28
    • 2017-03-27
    相关资源
    最近更新 更多