【发布时间】:2018-11-23 11:06:29
【问题描述】:
如何分组然后在列表中求和 以下是我的示例代码:
List<BrandType> brandTypeList = new List<BrandType>();
BrandType brandTypeClass = new BrandType();
brandTypeClass.Amount = 100;
brandTypeClass.Count = 50;
brandTypeClass.Category = "Fish";
brandTypeList.Add(brandTypeClass);
BrandType brandTypeClass2 = new BrandType();
brandTypeClass2.Amount = 100;
brandTypeClass2.Count = 50;
brandTypeClass2.Category = "Fish";
brandTypeList.Add(brandTypeClass2);
BrandType brandTypeClass3 = new BrandType();
brandTypeClass3.Amount = 100;
brandTypeClass3.Count = 50;
brandTypeClass3.Category = "Pork";
brandTypeList.Add(brandTypeClass3);
brandTypeList.GroupBy(x => new { x.Category }).Select
(x => new { Category = x.Key.Category,
Amount = x.Sum(z => z.Amount),
Count = x.Sum(z => z.Count) });
这就是它的样子
[0] {Amount = 100, Category = "Pork", Count = 50}
[1] {Amount = 100, Category = "Fish", Count = 50}
[2] {Amount = 100, Category = "Fish", Count = 50}
如何将 amout 和 count 相加,然后按类别分组? 我希望结果是
数量 = 200,类别 = “鱼”,计数 = 100
数量 = 100,类别 = “猪肉”计数 = 50
【问题讨论】:
-
stackoverflow.com/a/4351889/3583859 这个链接可能有帮助
-
问题的主要原因是 GroupBy 调用中的 x => new { x.Category }。它应该只是 GroupBy(x => x.Category)