c# - 如何计算 Linq 查询中一系列整数的运行总和?

标签 c# linq

我正在尝试提出一个 linq 查询来转换 IEnumerable<int>到另一个IEnumerable<int> ,其中结果中的每个整数都是从初始列表到该位置的所有整数的总和:

给定int[] a
我需要 int[] b
在哪里b[0] = a[0], b[1] = a[0] + a[1], b[2] = a[0] + a[1] + a[2]等等

或者,上面的总和可以写成 b[1] = b[0] + a[1], b[2] = b[1] + a[2]等等,但我看不出这会有什么帮助。

当然,我可以用 for 来做到这一点循环,但我从查询中获得了 a[] 序列,我认为如果我继续该查询而不是突然添加一个 for 会更好看。那里:)

最佳答案

嗯,你可以很容易地做到有副作用,虽然它很恶心......

int sum = 0;
int[] b = a.Select(x => (sum += x)).ToArray();

如果框架提供一种“运行聚合”来封装它,那就太好了,但据我所知,它并没有。

关于c# - 如何计算 Linq 查询中一系列整数的运行总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184812/

相关文章:

c# - 使用 System.Web.Optimization 时如何将类型 ="text/javascript"添加到脚本标记

c# - 在用户控件上更改运行时 UI 的最佳方法?

linq - EF 返回聚合和非聚合数据

c# - 使用 C# 从 Azure 时间序列见解中解析 json 事件

c# - 在运行时动态创建具有与其所有者相同类型的字段的类型

c# - 是否可以将用户在 WPF 数据网格上输入的数据存储到字符串变量中?

c# xml linq 向元素添加元素

c# - 为什么 Linq 扩展方法不位于 IEnumerator 而不是 IEnumerable 上?

c# - 这比 Null Coalesce 运算符好在哪里?

c# - 使用 LINQ to XML 进行功能构造内的条件