Share via


Operações de Agregação (Visual Basic)

Uma operação de agregação computa um único valor de uma coleção de valores. Um exemplo de uma operação de agregação é o cálculo da temperatura média diária dos valores válidos de temperatura diária de um mês.

A ilustração a seguir mostra os resultados de duas operações de agregação diferentes em uma sequência de números. A primeira operação soma os números. A segunda operação retorna o valor máximo na sequência.

Illustration that shows LINQ aggregation operations.

Os métodos de operador de consulta padrão que realizam operações de agregação são listados na seção a seguir.

Métodos

Nome do método Descrição Sintaxe da Expressão de Consulta do Visual Basic Mais informações
Agregado Executa uma operação de agregação personalizada nos valores de uma coleção. Não aplicável. Enumerable.Aggregate

Queryable.Aggregate
Média Calcula o valor médio de uma coleção de valores. Aggregate … In … Into Average() Enumerable.Average

Queryable.Average
Contagem Conta os elementos em uma coleção e, opcionalmente, apenas os elementos que satisfazem a uma função de predicado. Aggregate … In … Into Count() Enumerable.Count

Queryable.Count
LongCount Conta os elementos em uma coleção grande e, opcionalmente, apenas os elementos que satisfazem a uma função de predicado. Aggregate … In … Into LongCount() Enumerable.LongCount

Queryable.LongCount
Max ou MaxBy Determina o valor máximo em uma coleção. Aggregate … In … Into Max() Enumerable.Max
Enumerable.MaxBy
Queryable.Max
Queryable.MaxBy
Min ou MinBy Retorna o valor mínimo em uma coleção. Aggregate … In … Into Min() Enumerable.Min
Enumerable.MinBy
Queryable.Min
Queryable.MinBy
Somar Calcula a soma dos valores em uma coleção. Aggregate … In … Into Sum() Enumerable.Sum

Queryable.Sum

Exemplos de sintaxe de expressão de consulta

Média

O exemplo de código a seguir usa a cláusula Aggregate Into Average no Visual Basic para calcular a temperatura média em uma matriz de números que representam as temperaturas.


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

Contagem

O exemplo de código a seguir usa a cláusula Aggregate Into Count no Visual Basic para contar o número de valores em uma matriz maior ou igual a 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

O exemplo de código a seguir usa a cláusula Aggregate Into LongCount para contar o número de valores em uma matriz.


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

Max

O exemplo de código a seguir usa a cláusula Aggregate Into Max para calcular a temperatura máxima em uma matriz de números que representam as temperaturas.


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

Min

O exemplo de código a seguir usa a cláusula Aggregate Into Min para calcular a temperatura mínima em uma matriz de números que representam as temperaturas.


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

Somar

O exemplo de código a seguir usa a cláusula Aggregate Into Sum para calcular o valor total da despesa de uma matriz de valores que representam despesas.


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

Confira também