我正在尝试根据以下要求找到一种更好的处理数字序列的方法:
sequence[i]
的值是其自身值加上从sequence[0]
到sequence[i-1]
的累加之和.
例如: 如果序列是一个列表
List<double> list = new List<double> { 10.0, 20.0, 30.0, 40.0 };
输出结果应该是
list[0] = 10.0
list[1] = 20.0 + 10.0
list[2] = 30.0 + 10.0 + 20.0
list[3] = 40.0 + 10.0 + 20.0 + 30.0
我知道使用多次迭代的蛮力方法,但我想知道必须有一些更好的解决方案(也许使用 LINQ)。
最佳答案
假设您有权访问 LINQ:
using System.Linq;
List<int> numbers = new List<int> {10, 20, 30, 40};
List<int> runningTotals = new List<int>(numbers.Count);
numbers.Aggregate(0, (sum, value) => {
sum += value;
runningTotals.Add(sum);
return sum;
});
关于c# - 使用 C#/Linq 累积序列的子序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100079/