我想知道我可能会问一个简单的问题,但试图获得一个优雅的解决方案。我有一种情况,下面是行
状态标签值
阿拉巴马州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属性的所有重复项的总和。
我在lambda表达式中使用了ListObj.DistinctBy(p => p.State).ToList()
函数,但是无法将这些值添加到gether中。
有人可以帮助我实现上述目标吗?请让我知道是否需要更多信息。
最佳答案
未经测试,但这应该工作。
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();