在LINQ中,Aggregate()函數用於對列表的每一項進行操作。 Aggregate() 函數對第一個和第二個元素執行操作,然後結轉結果。對於下一個操作,它將考慮上一個結果和第三個元素,然後結轉等。
C#中LINQ聚合函數的語法
int[] Num = { 1, 2, 3, 4 };
double Average = Num.Aggregate((a, b) => a + b);
Console.WriteLine("{0}", Average); //Output 10 ((1+2)+3)+4
在上麵的語法中,我們取兩個元素 1 和 2 執行加法並生成 3,然後取前一個結果 3 和下一個元素 3 並執行加法使 6 與下一個元素 4 相加,結果將為 10。
現在我們將展示在 C# 中使用 linq Aggregate() 函數計算整數數組中所有數字的乘積的示例。
C#中LINQ聚合函數的語法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//here we are creating the array Num type of int
int[] Num = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine("Product of the element:");
//Now we will calculate the average of the numbers by applying the Aggregate function
double Average = Num.Aggregate((a, b) => a * b);
Console.WriteLine("Product is {0}", Average); //Output 362880 ((((((((1*2)*3)*4)*5)*6)*7)*8)*9)
//reate an array of string of the name charlist
string[] charlist = { "a", "b", "c", "d" };
var concat = charlist.Aggregate((a, b) => a + ',' + b);
Console.WriteLine("the Concatenated String:{0}", concat); // Output a,b,c,d
Console.ReadLine();
}
}
}
在上麵的例子中,有一個整數數組 Num。我們計算了給定數組中所有元素的乘積。為此,我們必須指定一個 Lambda 表達式。在 Lambda 表達式中,我們取了兩個輸入參數,"a" 和 "b." 並且在 right-hand 一側,我們將輸入的參數相乘。現在我們將得到所有數字的乘積。
這些步驟將描述上述示例的函數。
- 數組中的第一個元素 1 被分配給 a。第二個元素 2 分配給 b。
- 使用 Lambda 表達式計算兩個元素的乘積。前兩個元素(1 和 2)的結果存儲在 'a' 中。現在 b 的值為空。
- 已使用的前兩個元素 lambda 將采用第三個元素並將其值賦給 b,該值為 null。
- 現在 "a" 包含前兩個元素(1 和 2)的乘積,b 包含第三個 (3) 元素。現在 a 和 b 根據 lambda 相乘,結果值存儲在 a 中。現在 b 設置為空。
- 數組中的第四個元素分配給 b 並包含前三個元素的乘積。這個過程會一直持續到最後一個元素,最終產品會顯示在控製台上。
以同樣的方式,我們在 LINQ 中連接分隔字符串中的項目列表 (a,b,c,d)。
當我們執行上麵的LINQ Aggregate()函數時,會得到如下圖所示的結果:
輸出

相關用法
- LINQ AsEnumrable()用法及代碼示例
- LINQ ToLookup()用法及代碼示例
- LINQ ElementAtOrDefault()用法及代碼示例
- LINQ Count()用法及代碼示例
- LINQ Single()用法及代碼示例
- LINQ sum()用法及代碼示例
- LINQ ToArray()用法及代碼示例
- LINQ Min()用法及代碼示例
- LINQ ToDictionary()用法及代碼示例
- LINQ LastOrDefault()用法及代碼示例
- LINQ FirstOrDefault()用法及代碼示例
- LINQ GroupBy()用法及代碼示例
- LINQ Cast()用法及代碼示例
- LINQ ToList()用法及代碼示例
- LINQ Max()用法及代碼示例
- LINQ DefaultfEmpty()用法及代碼示例
- LINQ Last()用法及代碼示例
- LINQ ElementAt()用法及代碼示例
- LINQ OfType()用法及代碼示例
- Lodash _.sampleSize()用法及代碼示例
注:本文由純淨天空篩選整理自 LINQ Aggregate() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。