聚合操作

聚合操作從一組值中計算單個值。

骨料

對集合的值執行自定義聚合操作。

方法語法

// 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.