C# 返回累计值和累计值?

C# 返回累计值和累计值?,c#,linq,lambda,aggregate,C#,Linq,Lambda,Aggregate,我有一个Int列表,我想像这样“折叠”它:((((0+1)+2)+3)+4)+5) 最后是一个类似结果变量的列表 var numbers = new List<int>() {1, 2, 3, 4, 5}; var sum = numbers.Aggregate((a, b) => a + b); // 15 var desiredResult = [1, 3, 6, 10, 15]; var numbers=newlist(){1,2,3,4,5}; var su

我有一个Int列表,我想像这样“折叠”它:((((0+1)+2)+3)+4)+5) 最后是一个类似结果变量的列表

var numbers = new List<int>() {1, 2, 3, 4, 5};
var sum = numbers.Aggregate((a, b) => a + b);  // 15  

var desiredResult = [1, 3, 6, 10, 15]; 
var numbers=newlist(){1,2,3,4,5};
var sum=数字。聚合((a,b)=>a+b);//15
var desiredResult=[1,3,6,10,15];

如何更新聚合方法以返回所需的结果?

Aggregate
的重载都会生成一个输出,即
int
。那不是你想要的。您希望将一个数组投影到另一个具有运行总和的数组。类似这样的方法会奏效:

var runningSum = 0;
var sum = numbers.Select(i => runningSum += i);

sum = 
[1 3 6 10 15]

没有类似的内置功能,但有第三方库提供此功能。例如,查看下面的示例。它包括,和运算符。@TheodorZoulias-Thx这当然是它。干杯