C# 关于 IEnumerable.Aggregate

发布于 2024-11-08 17:01:10 字数 295 浏览 0 评论 0原文

我做了一些关于 IList.Aggregate() 的测试,但答案对我来说没有意义。

List<int> Data1 = new List<int> { 1,0,0,0,0};

var result = Data1.Aggregate<int>((total, next) => total + total);

结果是16

我预计它是 32

有人可以解释一下吗?

I did some tests about IList<T>.Aggregate(), but the answer does not make sense to me.

List<int> Data1 = new List<int> { 1,0,0,0,0};

var result = Data1.Aggregate<int>((total, next) => total + total);

The result is 16.

I expected it to be 32.

Can someone explain?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥有 2024-11-15 17:01:10

Aggregate 不会对列表中的第一个元素运行回调。
相反,第一个元素用作累加器的初始值(total)。
因此,您的回调仅运行四次,而不是五次,并且 24 = 16。

Aggregate doesn't run its callback for the first element in the list.
Rather, the first element is used as the initial value for the accumulator (total).
Therefore, your callback only runs four times, not five, and 24 = 16.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文