如何将foreach循环写入lamba表达式中的sum元素?

时间:2016-03-09 18:03:06

标签: c# foreach lambda linq-expressions

如何将下面显示的foreach循环编写为labmda表达式?

var sum = 0;
foreach (SomeClass obj in SomeListOfClass)
{
   sum += obj.SomeValue;
}

我期待一个看起来像这样的lambda表达式

var sum = SomeListOfClass.ForEachMethod( x => sum += x.SomeValue)

有什么办法吗?

2 个答案:

答案 0 :(得分:2)

使用Linq:

using System.Linq;

var sum = list.Sum(x => x.SomeValue);

答案 1 :(得分:2)

对于手头的特殊情况(总和),您可以使用Linq的pair1方法。

Sum

然而,这只是SomeListOfClass.Sum(c => c.Property); 的一个特例。如果您需要更复杂的列表聚合,那么您可以使用它 这是一个总结整数值的例子:

Aggregate