c# - 使用 C#/Linq 累积序列的子序列

标签 c# linq sequence

我正在尝试根据以下要求找到一种更好的处理数字序列的方法: 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/

相关文章:

c# - 如何将图像(.png)转换为base64字符串,反之亦然,并将其存储到指定位置

c# - 二元表达式无法转换为 LINQ 中的谓词表达式

keras - 为什么在堆叠 RNN 中返回序列?

javascript - IE 上的按键事件序列

javascript - node.js:如何使用序列和 promise 来建模两个异步循环

java - 将 java 代码转换为 c# 代码(十六进制字符串到字节数组)

c# - 反序列化 NodaTime LocalDate 时出现异常

javascript - 从 C# 后端发送脚本到浏览器

c# - .NET 操作在多核机器上的非线性扩展

c# - 从委托(delegate)过滤器表达式中获取对象 Expression<Func<T,bool>>