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


Операции статистической обработки

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

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

Операции статистической обработки LINQ

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

Методы

Имя метода

Описание

Синтаксис выражения запроса C#

Синтаксис выражения запроса Visual Basic

Дополнительные сведения

Aggregate

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

Неприменимо.

Неприменимо.

Enumerable.Aggregate

Queryable.Aggregate

Average

Вычисляет среднее значение коллекции значений.

Неприменимо.

Aggregate … In … Into Average()

Enumerable.Average

Queryable.Average

Количество

Подсчитывает число элементов в коллекции (при необходимости только те элементы, которые удовлетворяют функции предиката).

Неприменимо.

Aggregate … In … Into Count()

Enumerable.Count

Queryable.Count

LongCount

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

Неприменимо.

Aggregate … In … Into LongCount()

Enumerable.LongCount

Queryable.LongCount

Максимум

Определяет максимальное значение в коллекции.

Неприменимо.

Aggregate … In … Into Max()

Enumerable.Max

Queryable.Max

Минимум

Определяет минимальное значение в коллекции.

Неприменимо.

Aggregate … In … Into Min()

Enumerable.Min

Queryable.Min

Sum

Вычисляет сумму значений в коллекции.

Неприменимо.

Aggregate … In … Into Sum()

Enumerable.Sum

Queryable.Sum

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

Bb546138.collapse_all(ru-ru,VS.110).gifAverage

В следующем примере кода для вычисления средней температуры в массиве чисел, представляющих температуру, используется предложение 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

Bb546138.collapse_all(ru-ru,VS.110).gifКоличество

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


        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

Bb546138.collapse_all(ru-ru,VS.110).gifLongCount

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


        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

Bb546138.collapse_all(ru-ru,VS.110).gifМаксимум

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


        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

Bb546138.collapse_all(ru-ru,VS.110).gifМинимум

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


        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

Bb546138.collapse_all(ru-ru,VS.110).gifSum

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


        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

См. также

Задачи

Практическое руководство. Вычисление значений столбцов в текстовом CSV-файле (LINQ)

Практическое руководство. Выполнение над данными функций Count, Sum и Average с помощью LINQ (Visual Basic)

Практическое руководство. Поиск минимального или максимального значения в результатах запроса с помощью LINQ (Visual Basic)

Практическое руководство. Запрос самого большого файла или файлов в дереве папок (LINQ)

Практическое руководство. Запрос общего числа байтов в наборе папок (LINQ)

Ссылки

Предложение Aggregate (Visual Basic)

System.Linq

Основные понятия

Общие сведения о стандартных операторах запроса