C#关于IEnumerable <t> .Aggregate </t>

时间:2011-05-19 20:15:10

标签: c# linq aggregate

我对IList<T>.Aggregate()进行了一些测试,但答案对我来说没有意义。

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

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

结果为16

我希望它是32

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:21)

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