在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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。