我想知道我可能会问一个简单的问题,但试图找到一个优雅的解决方案。我有一种情况,下面是行
州 标签 价值
考虑到上面的List<ValueLabels>
对象(每个ValueLabel对象都有State,Label和value的集合),我应该生成另一个包含以下信息的列表。
这意味着,最终,我应该获得基于State属性的唯一记录,value属性应该是基于State属性的所有重复条目的总和。
我已将ListObj.DistinctBy(p => p.State).ToList()
函数与lambda表达式一起使用,但我无法将这些值添加到gether中。
任何人都可以帮助我实现上述目标吗?如果需要进一步的信息,请告诉我。
答案 0 :(得分:2)
未经测试,但这应该有效。
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();
答案 1 :(得分:2)
On solution正在使用分组:
var result = from o in listObj
group o by o.State into g
select new ValueLabels()
{
State = g.Key,
Label = g.First().Label,
Value = g.Sum(i => i.Value)
};
答案 2 :(得分:0)
试试这个:
MyListOfComplextData.GroupBy(r => r.state)
.Select(a => new { sum= a.Sum(b => b.code), Name = a.Key})
.ToList()
;