聚合lambda表达式

mik*_*ens 3 c# lambda

int sum0 = 0;
for (int i = 0; i < 10; i++)
{
    sum0 += i;
}

int sum1 = Enumerable.Range(0, 10).Sum();
int sum2 = Enumerable.Range(0, 10).Aggregate((x, y) => x + y);
int sum3 = Enumerable.Range(0, 10).Aggregate(0, (x, y) => x + y);
Run Code Online (Sandbox Code Playgroud)

所有上述4个表达式都在做同样的事情:求0到10之和.我理解sum0和sum1的计算.但是sum2和sum3是什么?为什么lambda在这里使用两个参数(x,y)?

fbs*_*stj 5

扩展了bdukes的答案,lambda采取了

( x = [value of last lambda expression], y = [next value] ) => x+y
Run Code Online (Sandbox Code Playgroud)

和sum3允许您设置初始x值.