聚合操作

聚合操作从一组值中计算单个值。

骨料

对集合的值执行自定义聚合操作。

方法语法

// Aggregate

var numbers = new int[] { 1, 2, 3, 4, 5 };

var product = numbers.Aggregate(1, (acc, n) => acc * n);

// product = 120

查询语法

// Not applicable.

平均

计算值集合的平均值。

方法语法

// Average

var numbers = new int[] { 1, 2, 3, 4, 5 };

var average = numbers.Average();

// average = 3

查询语法

// Not applicable.

计数

计算集合中的元素,可选地仅计算满足谓词函数的元素。

方法语法

// Count

var numbers = new int[] { 1, 2, 3, 4, 5 };

int count = numbers.Count(n => n % 2 == 0);

// count = 2

查询语法

// Not applicable.

LongCount

计算大集合中的元素,可选地仅计算满足谓词函数的元素。

方法语法

// LongCount

var numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

long count = numbers.LongCount();

// count = 10

查询语法

// Not applicable.

最大值

确定集合中的最大值。如果集合为空,则抛出异常。

方法语法

// Max

var numbers = new int[] { 1, 2, 3, 4, 5 };

var max = numbers.Max();

// max = 5

查询语法

// Not applicable.

确定集合中的最小值。如果集合为空,则抛出异常。

方法语法

// Min

var numbers = new int[] { 1, 2, 3, 4, 5 };

var min = numbers.Min();

// min = 1

查询语法

// Not applicable.

MIN- / MaxOrDefault

与其他 LinQ 扩展不同,Min()Max() 没有例外的过载。因此,在调用 Min()Max() 之前必须检查 IEnumerableAny()

// Max

var numbers = new int[] { };

var max = numbers.Any() ? numbers.Max() : 0;

// max = 0

计算集合中值的总和。

方法语法

// Sum

var numbers = new int[] { 1, 2, 3, 4, 5 };

var sum = numbers.Sum();

// sum = 15

查询语法

// Not applicable.