Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ООП (язык C#).pdf
Скачиваний:
190
Добавлен:
16.05.2015
Размер:
1.54 Mб
Скачать

Чернов Э. А.

- 105 -

Лекции по языку C# v 2.3

Агрегирующие запросы

Агрегирующие запросы обеспечивают реализацию функции от всех элементов последовательности: подсчет количества элементов, вычисление среднего арифметического и т. д.

Основные операции для агрегирующих запросов: Average, Count, Max, Min, Sum. Практически все эти операции имеют прототипы с одновременной выборкой элементов по заданному условию. Пример вычисления среднего значения:

double avr = lst.Average(t =>t.wage);//

Console.WriteLine(" Средняя зарплата по списку = {0:F3}", avr);

Лямбда-выражение применяется для обращения к полю объекта. Результат выполнения программы имеет вид:

Операция Count применяется для подсчета количества каких-либо элементов. При использовании ее без параметров она просто вычисляет длину списка, и ее можно заменить стандартным атрибутом Length. Интерес представляет прототип этой операции, подсчитывающий количество элементов с одновременной проверкой некоторого условия. Запишем подсчет имен в списке lst, начинающихся на букву 'A'.

int cnta = lst.Count(t =>t.secname.StartsWith("А"));// Console.WriteLine("Сколько имен начинается с буквы \"А\" = {0}", cnta);

Результат выполнения программы имеет вид:

Аналогично реализуется операция Sum. Однако операция с пустым списком параметров позволяет подсчитать сумму соответствующего столбца.

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

double minw = lst.Min(t => t.wage);//

Console.WriteLine(" Минимальная зарплата по списку = {0:F3}", minw);

Результат выполнения программы имеет вид:

Запрос для поиска по минимальной длине строки:

int mina = lst.Min(t =>t.secname.Length);// Console.WriteLine("\n Минимальная длина имени = {0}", mina);

Результат выполнения программы имеет вид: