var nums = new int[] { 1, 2, 3, 4, 5 }; // 其和為15 var count = nums.Aggregate((body, next) => { // 注意,nums的元素個數至少一個以上(但如果是有seed的模式,是可以為0個元素的)才能執行Aggregate,但是C#是允許 new int[0];的。 // 只輸出了4次,且第一次輸出是:1#2,最后一次輸出是:10#5 // 得出 沒seed的 Aggregate(...)累加執行次數是 nums.Length-1 次。 // 它的執行方式的可能性之一:系統默認先將第一個元素賦值給body(因為body的類型和next是一致的),然后游標下標index值變為1 // 步驟X:判斷是否存在nums[index],如果存在則將nums[index]賦給next並執行lambda表達式, // 然后將lambda表達式的 返回值 賦值給body(故不需要body+=next),游標下標index+=1 ; // 如此循環上面的步驟X執行直到index下標對應的nums元素不存在為止。 Console.WriteLine(body + "#" + next); return body + next; }); Console.WriteLine("最終結果是:" + count); // 輸出15沒錯。