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


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

Операция агрегирования вычисляет одно значение из коллекции значений. Примером операции агрегирования является вычисление средней дневной температуры из ежемесячного набора значений дневной температуры.

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

Иллюстрация, показывающая операции агрегирования LINQ.

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

Методы

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

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

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

Queryable.Count
ЛонгКаунт Подсчитывает элементы в большой коллекции, при необходимости только те элементы, которые удовлетворяют функции предиката. 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
Сумма Вычисляет сумму значений в коллекции. Aggregate … In … Into Sum() Enumerable.Sum

Queryable.Sum

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

Среднее значение

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


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

Численность

В следующем примере кода используется оператор Aggregate Into Count в Visual Basic для подсчета количества значений в массиве, которые больше или равны 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

Сумма

В следующем примере кода используется оператор 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

См. также