摘要: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次:
呼叫次數 | total | next |
1 | 1 | 2 |
2 | 2 | 3 |
3 | 6 | 4 |
4 | 24 | 5 |
5 | 120 |
total:代表彙總值,若 Aggregate 方法沒有去初始化 total ,則就為資料來源中第一個項目。
每次計算完成後的結果會取代掉total
next: 將要用來計算的下一個項目
第5次計算時,發現 next 已無資料,代表計算完成。最後計算結果就是 total
Aggregate 用途:Aggregate 屬於彙總運算子一種,但它的好處在於可以自訂針對項目的運算方式,例如連乘…etc
更多範例請自行參考MSDN