LINQ 聚合揭秘:逐步指南
LINQ 的聚合函數通常會造成混亂。在本文中,我們將深入研究 Aggregate 的內部工作原理,並透過實際範例提供清晰簡潔的解釋。
理解 Aggregate
Aggregate 是一種操作迭代元素序列,將指定的函數(lambda 表達式)應用於每個元素和先前累積的結果。它本質上是對元素執行連續的操作,並將中間結果向前傳送。
範例1:對數字求和
讓我們從一個對數字列表求和的簡單範例開始:
var nums = new[] { 1, 2, 3, 4 }; var sum = nums.Aggregate((a, b) => a + b); Console.WriteLine(sum); // Output: 10
在此在範例中,Aggregate 函數使用第一個元素(1) 初始化結果。然後,它將 lambda 表達式 (a b) 應用於目前結果 (1) 和下一個元素 (2),結果為 3。此過程繼續,將每個元素添加到前一個結果中。
範例2:從字串建立 CSV
聚合也可用於字串運算。以下介紹如何從字元陣列建立逗號分隔的字串:
var chars = new[] { "a", "b", "c", "d" }; var csv = chars.Aggregate((a, b) => a + "," + b); Console.WriteLine(csv); // Output: a,b,c,d
範例3:將數字與種子相乘
聚合支援以下重載:採用初始種子值來啟動計算。考慮以下範例:
var multipliers = new[] { 10, 20, 30, 40 }; var multiplied = multipliers.Aggregate(5, (a, b) => a * b); Console.WriteLine(multiplied); // Output: 1200000
在這種情況下,聚合運算從種子值 (5) 開始,並應用乘法 lambda 表達式 (a * b)。序列中的每個元素都與前一個結果相乘並結轉,產生最終結果 1200000。
以上是LINQ 的聚合函數如何運作:逐步說明?的詳細內容。更多資訊請關注PHP中文網其他相關文章!