📅  最后修改于: 2023-12-03 15:10:31.040000             🧑  作者: Mango
在 LINQ 中,Aggregate 方法可用于将序列的所有元素归约为单个值。 它类似于 SQL 中的 SUM()、AVG() 和 COUNT() 函数。 但它具有更多的灵活性,因为它允许使用者指定自己的归约方法来执行特定任务。 在本文中,我们将探讨 Aggregate 方法的用法。
Aggregate 方法定义如下:
public static TAccumulate Aggregate<TSource,TAccumulate>(
this IEnumerable<TSource> source,
TAccumulate seed,
Func<TAccumulate,TSource,TAccumulate> func
)
其中,
我们现在来看看一个简单的示例,假设我们有一个整数列表,需要查找其总和。
List<int> numbers = new List<int> { 2, 3, 4, 5 };
int sum = numbers.Aggregate((x, y) => x + y);
Console.WriteLine(sum); // 输出:14
代码解读:
如果我们希望使用自定义的归约方法,则必须指定一个归约初始值,来作为第一个累加器的值,并定义一个方法,用于执行实际的归约操作。下面的示例,演示如何计算列表中元素的乘积。
List<int> numbers = new List<int> { 2, 3, 4, 5 };
int product = numbers.Aggregate(1,
(accumulator, element) => accumulator * element);
Console.WriteLine(product); // 输出:120
代码解读: