在下面的代码中,我有一个列表,我试图从列表中使用linq查询获取值并对值进行求和。但我不知道如何对值进行求和。所以请帮我解决问题。
list contains:
Desc Month level value
M1 Jan L1 2
M1 Jan L2 6
M2 Feb L1 4
M2 Feb L2 1
My Expected Result:
M1 Jan 8
M2 Feb 5
var sums1 = objList
.GroupBy(y => new { y.Desc, y.Month, y.value })
.Select(group => new { KeyValue = group.Key, Count = group.Count() });
答案 0 :(得分:5)
你不应该在你的分组中加入value
- 只想Desc
和Month
和var sums1 = objList
.GroupBy(y => new { y.Desc, y.Month })
.Select(group => new { KeyValue = group.Key, Sum = group.Sum(y => y.value) });
(我假设)分组,然后总和价值部分。两个选项:
var sums1 = objList.GroupBy(
y => new { y.Desc, y.Month },
(key, values) => new { key.Desc, key.Month, Sum = values.Sum(y => y.value) });
或者只需一次通话:
{{1}}
答案 1 :(得分:1)
将group.Count
替换为group.Sum(x=>x.value)
答案 2 :(得分:0)
对IEnumerable使用LINQ的Sum()扩展方法。
.Select(group => new { KeyValue = group.Key, Sum = group.Sum(obj => obj.value)});