如何使用foreach循环在lambda表达式中求元素的总和?

9 浏览
0 Comments

如何使用foreach循环在lambda表达式中求元素的总和?

如何将下面显示的foreach循环以lambda表达式的形式写出?

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

我希望得到一个像这样的lambda表达式

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

有没有办法可以实现这样的转换?

0
0 Comments

问题的出现原因是想要在lambda表达式中使用foreach循环来对元素进行求和。然而,lambda表达式并不支持foreach循环,因此需要找到解决方法。下面将介绍一种解决方法。

解决方法是使用Linq库中的Sum方法来实现对元素的求和。首先需要引入System.Linq命名空间,然后可以使用Sum方法来对列表中的元素进行求和。具体的代码如下:

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

以上代码中,list是要进行求和操作的列表,Sum方法接受一个lambda表达式作为参数,用于指定要对哪个属性进行求和。在lambda表达式中,x代表列表中的每个元素,x.SomeValue表示要对元素中的SomeValue属性进行求和。最后,将求和的结果存储在变量sum中。

通过以上的代码,就可以实现对列表中元素的求和操作。这种方法使用了Linq库中的Sum方法,避免了使用foreach循环的限制,使求和操作更加简洁和高效。

0
0 Comments

问题出现的原因是需要对列表中的元素进行求和操作,但是不清楚如何在lambda表达式中使用foreach循环来实现。

解决方法是使用LINQ的Sum方法来实现对列表元素求和的操作。具体代码如下:

SomeListOfClass.Sum(c => c.Property);

另外,如果需要对列表进行更复杂的聚合操作,可以使用Aggregate方法。下面是一个对整数列表进行求和的示例代码:

var ints = new List() { 1, 2, 3 };
var x = ints.Aggregate((start, current) => start + current);

通过使用Sum方法或Aggregate方法,可以很方便地对列表元素进行求和操作,而不需要使用foreach循环来逐个遍历列表元素。

0