使用linq求值

时间:2017-05-21 18:16:00

标签: c# linq

在下面的代码中,我有一个列表,我试图从列表中使用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() });

3 个答案:

答案 0 :(得分:5)

你不应该在你的分组中加入value - 只想DescMonthvar 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)});