聚合操作
聚合操作从一组值中计算单个值。
骨料
对集合的值执行自定义聚合操作。
方法语法
// 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()
之前必须检查IEnumerable
的Any()
// 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.