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


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

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

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

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

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

Методы

Имя метода

Описание

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

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

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

Aggregate

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

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

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

Enumerable.Aggregate``1

Queryable.Aggregate``1

Average

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

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

Aggregate … In … Into Average()

Enumerable.Average

Queryable.Average

Количество

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

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

Aggregate … In … Into Count()

Enumerable.Count``1

Queryable.Count``1

LongCount

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

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

Aggregate … In … Into LongCount()

Enumerable.LongCount``1

Queryable.LongCount``1

Максимум

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

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

Aggregate … In … Into Max()

Enumerable.Max

Queryable.Max``1

Минимум

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

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

Aggregate … In … Into Min()

Enumerable.Min

Queryable.Min``1

Sum

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

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

Aggregate … In … Into Sum()

Enumerable.Sum

Queryable.Sum

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

Average

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

Количество

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

LongCount

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

Максимум

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

Минимум

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

Sum

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

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

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