如何将下面显示的foreach循环编写为labmda表达式?
var sum = 0;
foreach (SomeClass obj in SomeListOfClass)
{
sum += obj.SomeValue;
}
我期待一个看起来像这样的lambda表达式
var sum = SomeListOfClass.ForEachMethod( x => sum += x.SomeValue)
有什么办法吗?
答案 0 :(得分:2)
使用Linq:
using System.Linq;
var sum = list.Sum(x => x.SomeValue);
答案 1 :(得分:2)
对于手头的特殊情况(总和),您可以使用Linq的pair1
方法。
Sum
然而,这只是SomeListOfClass.Sum(c => c.Property);
的一个特例。如果您需要更复杂的列表聚合,那么您可以使用它
这是一个总结整数值的例子:
Aggregate