2011-05-19 33 views
21

我做了一些關於IList<T>.Aggregate()的測試,但答案對我來說沒有意義。C#關於IEnumerable <T> .Aggregate

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

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

結果是16

我預計它是32

有人可以解釋一下嗎?

+0

嗯......您爲什麼認爲它應該是30? – SLaks 2011-05-19 20:15:47

+4

你的意思是32? – SLaks 2011-05-19 20:16:15

+0

是的,我的意思是32. – retide 2011-05-19 20:30:14

回答

21

Aggregate不會爲列表中的第一個元素運行其回調。 相反,第一個元素用作累加器的初始值(total)。
因此,您的回撥只能運行四次,而不是五次,而且2 = 16.

相關問題