我想知道我可能会问一个简单的问题,但试图获得一个优雅的解决方案。我有一种情况,下面是行
状态 标签 值
- 阿拉巴马州 AB 9
- 阿拉巴马州 AB 4
- 亚利桑那 AZ 5
- 德克萨斯 TX 6
- 德克萨斯 TX 15
- 加利福尼亚 CA 14
- 加利福尼亚 CA 11
- 加利福尼亚 CA 2
考虑以上List<ValueLabels>
对象(每个 ValueLabel 对象都有一组状态、标签和值),我应该生成另一个包含以下信息的列表。
- 阿拉巴马州 AB 13
- 亚利桑那 AZ 5
- 德克萨斯 TX 21
- 加利福尼亚 CA 27
这意味着,最终,我应该得到一个基于 State 属性的唯一记录,而 value 属性应该是所有基于 State 属性的重复条目的总和。
我用过ListObj.DistinctBy(p => p.State).ToList()
使用 lambda 表达式函数,但我无法将值添加到一起。
任何人都可以帮助我实现上述目标吗?如果需要更多信息,请告诉我。
最佳答案
未测试,但这应该有效。
var newList = list.GroupBy(x=> new {x.State , x.Label })
.Select(x=> new YourClass(x.Key.State, x.Key.Label, x.Sum(x=>x.Value) ))
.ToList();
关于c# - 根据属性和重复总和列出不同的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805792/