Udostępnij za pośrednictwem


Operacje agregacji

Operacja agregacji oblicza pojedynczą wartość ze zbioru wartości.Przykładem operacji agregacji jest obliczanie średniej temperatury dziennej z miesięcznej wartości temperatury dziennych.

Poniższa ilustracja pokazuje wyniki dwie operacje agregacji różnych sekwencji numerów.Pierwsza operacja sumuje liczby.Druga operacja zwraca maksymalną wartość w sekwencji.

Operacje agregacji programu LINQ

Kwerendy standardowe metody operatora, wykonujących operacje agregacji są wymienione w poniższej sekcji.

Metody

Nazwa metody

Opis

Kwerendy języka C# składni wyrażenia

Visual BasicSkładni wyrażenia kwerendy

Więcej informacji

Łączna

Wykonuje operację agregacji niestandardowych na podstawie wartości kolekcji.

Nie dotyczy.

Nie dotyczy.

Enumerable.Aggregate``1

Queryable.Aggregate``1

Średnia

Oblicza wartość średnią ze zbioru wartości.

Nie dotyczy.

Aggregate … In … Into Average()

Enumerable.Average

Queryable.Average

Licznik

Zlicza elementy w kolekcji, opcjonalnie tylko te elementy, które spełniają funkcji predykatu.

Nie dotyczy.

Aggregate … In … Into Count()

Enumerable.Count``1

Queryable.Count``1

LongCount

Zlicza elementy w kolekcji duże, opcjonalnie tylko te elementy, które spełniają predykatu funkcji.

Nie dotyczy.

Aggregate … In … Into LongCount()

Enumerable.LongCount``1

Queryable.LongCount``1

MAX

Określa maksymalną wartość w zbiorze.

Nie dotyczy.

Aggregate … In … Into Max()

Enumerable.Max

Queryable.Max``1

Min

Określa minimalną wartość w zbiorze.

Nie dotyczy.

Aggregate … In … Into Min()

Enumerable.Min

Queryable.Min``1

Suma

Oblicza sumę wartości w zbiorze.

Nie dotyczy.

Aggregate … In … Into Sum()

Enumerable.Sum

Queryable.Sum

Przykłady składni wyrażenia kwerendy

Średnia

Następujący kod w przykładzie wykorzystano Aggregate Into Average w klauzuli Visual Basic do obliczania średniej temperatury w tablicy liczb reprezentujących temperatur.

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

Licznik

Następujący kod w przykładzie wykorzystano Aggregate Into Count w klauzuli Visual Basic do liczenia wartości w tablicy, które są większe niż lub równe 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

Następujący kod w przykładzie wykorzystano Aggregate Into LongCount w klauzuli Visual Basic do liczenia wartości w tablicy.

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

Następujący kod w przykładzie wykorzystano Aggregate Into Max w klauzuli Visual Basic do obliczania maksymalnej temperatury w tablicy liczb reprezentujących temperatur.

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

Następujący kod w przykładzie wykorzystano Aggregate Into Min w klauzuli Visual Basic do obliczania minimalna temperatura w tablicy liczb reprezentujących temperatur.

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

Suma

Następujący kod w przykładzie wykorzystano Aggregate Into Sum w klauzuli Visual Basic do obliczania kwoty wydatków ogółem z tablicy wartości, które stanowią wydatki.

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

Zobacz też

Zadania

Porady: obliczanie wartości kolumn w pliku tekstowym CSV (LINQ)

Porady: zliczanie, sumowanie, lub uśrednianie danych za pomocą LINQ (Visual Basic)

Porady: znajdowanie wartości minimalnej lub maksymalnej w wyniku zapytania za pomocą LINQ (Visual Basic)

Porady: zapytanie o największy plik lub pliki w drzewie katalogu (LINQ)

Porady: zapytanie o całkowitą liczbę bajtów w zestawie folderów (LINQ)

Informacje

Aggregate — Klauzula (Visual Basic)

System.Linq

Koncepcje

Standardowe operatory zapytań — Omówienie