Aggreate 方法

摘要:Aggreate 方法

Aggregate 是一個 Extension Method,對像為實作 IEnumerable<TSource> 的物件
但 Aggregate 方法的參數 Func 泛型委派 讓我搞不太懂~"~
現在終於看懂了~

範例1:

最後輸出結果為 => 1 * 2 * 3 * 4 * 5 的乘績

那到底 Aggregate 是怎麼運作的呢??
MSDN說:「這個方法的運作方式是對資料來源中的每個項目呼叫 Func 一次。」
不太好懂吧~哈!
解釋如下:

numbers(資料來源)有5個項目,分別為1, 2, 3, 4, 5
Aggregate 方法會讓他們分別去呼叫 Func 泛型委派(內容由我們實作)
所以代表 Func 會執行5次:

呼叫次數totalnext
112
223
364
4245
5120 









 

 


total:代表彙總值,若 Aggregate 方法沒有去初始化 total ,則就為資料來源中第一個項目。
            每次計算完成後的結果會取代掉total
next: 將要用來計算的下一個項目

第5次計算時,發現 next 已無資料,代表計算完成。最後計算結果就是 total

Aggregate 用途:Aggregate 屬於彙總運算子一種,但它的好處在於可以自訂針對項目的運算方式,例如連乘…etc

更多範例請自行參考MSDN