我想知道我可能会问一个简单的问题,但试图获得一个优雅的解决方案。我有一种情况,下面是行

状态标签值


阿拉巴马州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();

10-04 21:16
查看更多