Поделиться через


Операции агрегирования (Visual Basic)

Статистическая операция вычисляет одно значение по коллекции значений. Например, статистической обработкой является вычисление средней дневной температуры с использованием значений дневной температуры за месяц.

На приведенном ниже рисунке показаны результаты двух различных операций агрегирования с последовательностью чисел. Первая операция суммирует числа. Вторая операция возвращает максимальное значение в последовательности.

Illustration that shows LINQ aggregation operations.

В следующем разделе перечислены методы стандартных операторов запросов, которые выполняют операции агрегирования.

Методы

Имя метода Description Синтаксис выражения запроса Visual Basic Дополнительные сведения
Агрегированное Выполняет пользовательскую операцию агрегирования со значениями коллекции. Неприменимо. Enumerable.Aggregate

Queryable.Aggregate
По средней Вычисляет среднее значение коллекции значений. Aggregate … In … Into Average() Enumerable.Average

Queryable.Average
Count Подсчитывает число элементов в коллекции (при необходимости только те элементы, которые удовлетворяют функции предиката). Aggregate … In … Into Count() Enumerable.Count

Queryable.Count
LongCount Подсчитывает число элементов в большой коллекции (при необходимости только те элементы, которые удовлетворяют функции предиката). Aggregate … In … Into LongCount() Enumerable.LongCount

Queryable.LongCount
Max или MaxBy Определяет максимальное значение в коллекции. Aggregate … In … Into Max() Enumerable.Max
Enumerable.MaxBy
Queryable.Max
Queryable.MaxBy
Min или MinBy Определяет минимальное значение в коллекции. Aggregate … In … Into Min() Enumerable.Min
Enumerable.MinBy
Queryable.Min
Queryable.MinBy
Sum Вычисляет сумму значений в коллекции. Aggregate … In … Into Sum() Enumerable.Sum

Queryable.Sum

Примеры синтаксиса выражений запросов

По средней

В следующем примере кода предложение в Visual Basic используется Aggregate Into Average для вычисления средней температуры в массиве чисел, представляющих температуры.


Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}

Dim avg = Aggregate temp In temperatures Into Average()

' Display the result.
MsgBox(avg)

' This code produces the following output:

' 76.65

Count

В следующем примере кода предложение в Visual Basic используется Aggregate Into Count для подсчета количества значений в массиве, превышающего или равное 80.


Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}

Dim highTemps As Integer = Aggregate temp In temperatures Into Count(temp >= 80)

' Display the result.
MsgBox(highTemps)

' This code produces the following output:

' 3

LongCount

В следующем примере кода предложение используется Aggregate Into LongCount для подсчета количества значений в массиве.


Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}

Dim numTemps As Long = Aggregate temp In temperatures Into LongCount()

' Display the result.
MsgBox(numTemps)

' This code produces the following output:

' 6

Макс.

В следующем примере кода предложение используется Aggregate Into Max для вычисления максимальной температуры в массиве чисел, представляющих температуры.


Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}

Dim maxTemp = Aggregate temp In temperatures Into Max()

' Display the result.
MsgBox(maxTemp)

' This code produces the following output:

' 88.6

Мин.

В следующем примере кода предложение используется Aggregate Into Min для вычисления минимальной температуры в массиве чисел, представляющих температуры.


Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}

Dim minTemp = Aggregate temp In temperatures Into Min()

' Display the result.
MsgBox(minTemp)

' This code produces the following output:

' 68.5

Sum

В следующем примере кода предложение используется Aggregate Into Sum для вычисления суммы расходов из массива значений, представляющих расходы.


Dim expenses() As Double = {560.0, 300.0, 1080.5, 29.95, 64.75, 200.0}

Dim totalExpense = Aggregate expense In expenses Into Sum()

' Display the result.
MsgBox(totalExpense)

' This code produces the following output:

' 2235.2

См. также