📜  LINQ Aggregate()函数

📅  最后修改于: 2021-01-06 05:11:46             🧑  作者: Mango

LINQ Aggregate()函数

在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”。在右侧,我们将输入的参数相乘。现在我们将得到所有数字的乘积。

这些步骤将描述上述示例的功能。

  • 从阵列的第一个元素1被分配给一个。第二个元素2被分配给b
  • 这两个元素的乘积使用Lambda Expression计算。前两个元素(1和2)的结果存储在' a '中。现在b的值为空。
  • 前两个元素已被使用,lambda将获取第三个元素并将其值分配给b,该值为null。
  • 现在,“ a ”包含前两个元素(1和2)的乘积,而b包含第三个(3)元素。现在,a和b根据lambda相乘,结果值存储在a中。现在b设置为null。
  • 数组中的第四个元素分配给b,并包含前三个元素的乘积。该过程将一直持续到最后一个元素,产品最终将显示在控制台上。

同样,我们在LINQ中将字符串分隔的项目列表(a,b,c,d)串联在一起。

当我们执行上面的LINQ Aggregate()函数,我们将得到如下所示的结果:

输出量