LINQ中Sum和Aggregate之间的差异

本文关键字:之间 Aggregate Sum LINQ | 更新日期: 2023-09-27 18:24:41

Sum/Agregate这两个函数之间的区别是什么?

LINQ中Sum和Aggregate之间的差异

您基本上可以将Sum视为一种特定类型的Aggregate,但还有许多其他类型。

Aggregate的一些示例可能是将每个值相乘,或者添加字符串而不是数字。

Sum除了Aggregate之外还存在的原因很简单,因为Sum是更常见的Aggregate函数类型之一,因此在这种情况下添加一个额外的函数是值得的。

Sum操作是Aggregate的专门化。Aggregate操作是通过应用将一对值缩减为单个值的委托,将集合折叠为单个值。Sum本质上是用+函数/运算符

调用Aggregate

Aggregate更加灵活。它可以用于多种类型(例如构建字符串)。Sum有一个非常特殊的目的(添加数字)。

Linq中的Sum方法仅对数值数据类型(int、float等)进行运算,其中聚合方法既可以对数值数据类型进行操作,也可以对字符串数据类型。

string[] countries = { "Brazil", "Argentina", "England", "Spain"};
string result = countries.Aggregate((a, b) => a + ", " + b);
//result="Brazil,Argentina,England"
int[] Numbers = { 2, 3, 4 };
int aggregate= Numbers.Aggregate((a, b) => a * b);
//aggregate=24