Agregační operace (Visual Basic)

Agregační operace vypočítá jednu hodnotu z kolekce hodnot. Příkladem agregační operace je výpočet průměrné denní teploty z hodnot denní teploty za měsíc.

Následující obrázek znázorňuje výsledky dvou různých agregačních operací v posloupnosti čísel. První operace sečte čísla. Druhá operace vrátí maximální hodnotu v sekvenci.

Illustration that shows LINQ aggregation operations.

Standardní metody operátoru dotazu, které provádějí agregační operace, jsou uvedeny v následující části.

Metody

Název metody Popis Syntaxe výrazů dotazu jazyka Visual Basic Další informace
Agregovat Provede vlastní operaci agregace s hodnotami kolekce. Nevztahuje se. Enumerable.Aggregate

Queryable.Aggregate
Průměr Vypočítá průměrnou hodnotu kolekce hodnot. Aggregate … In … Into Average() Enumerable.Average

Queryable.Average
Počet Spočítá prvky v kolekci, volitelně pouze ty prvky, které splňují predikát funkce. Aggregate … In … Into Count() Enumerable.Count

Queryable.Count
LongCount Spočítá prvky ve velké kolekci, volitelně pouze ty prvky, které splňují predikát funkce. Aggregate … In … Into LongCount() Enumerable.LongCount

Queryable.LongCount
Max nebo MaxBy Určuje maximální hodnotu v kolekci. Aggregate … In … Into Max() Enumerable.Max
Enumerable.MaxBy
Queryable.Max
Queryable.MaxBy
Min nebo MinBy Určuje minimální hodnotu v kolekci. Aggregate … In … Into Min() Enumerable.Min
Enumerable.MinBy
Queryable.Min
Queryable.MinBy
Sum Vypočítá součet hodnot v kolekci. Aggregate … In … Into Sum() Enumerable.Sum

Queryable.Sum

Příklady syntaxe výrazů dotazů

Průměr

Následující příklad kódu používá klauzuli Aggregate Into Average v jazyce Visual Basic k výpočtu průměrné teploty v matici čísel, která představují teploty.


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

Počet

Následující příklad kódu používá klauzuli Aggregate Into Count v jazyce Visual Basic ke spočítání počtu hodnot v matici, které jsou větší nebo rovny 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

Následující příklad kódu používá Aggregate Into LongCount klauzuli k počítání počtu hodnot v poli.


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

Maximum

Následující příklad kódu používá Aggregate Into Max klauzuli k výpočtu maximální teploty v matici čísel představujících teploty.


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.

Následující příklad kódu používá Aggregate Into Min klauzuli k výpočtu minimální teploty v matici čísel představujících teploty.


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

Následující příklad kódu používá Aggregate Into Sum klauzuli k výpočtu celkové částky výdajů z pole hodnot, které představují výdaje.


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

Viz také