Programming Taskbook 0


Download 1.62 Mb.
Pdf ko'rish
bet37/71
Sana21.06.2023
Hajmi1.62 Mb.
#1644761
TuriУчебное пособие
1   ...   33   34   35   36   37   38   39   40   ...   71
Bog'liq
Abramyan-Pascal2016-1


Глава 4. Запросы 
61 
4.1.
Поэлементные операции, квантификаторы 
и агрегирование
К простейшим стандартным запросам можно отнести запросы, кото-
рые позволяют:
• обратиться к отдельным элементам последовательности,
• проверить, удовлетворяют ли все или некоторые элементы опреде-
ленному условию (запросы-квантификаторы),
• найти какую-либо общую (агрегирующую) характеристику элемен-
тов последовательности.
Здесь и далее при описании групп запросов (и других методов) мы бу-
дем указывать их имена, параметры и тип возвращаемого значения, заклю-
чая необязательные параметры в квадратные скобки. В первой строке опи-
сания группы методов слева будет указываться ее название, а справа — 
тип структуры, к которой должны применяться описываемые методы.
Начнем с первой группы запросов. Обратите внимание на то, что все 
эти запросы возвращают скалярное значение. 
Поэлементные операции 
Методы sequence of T
 
First([pred: T -> boolean]): T 
Last([pred: T -> boolean]): T 
Single([pred: T -> boolean]): T 
ElementAt(index: integer): T 
FirstOrDefault([pred: T -> boolean]): T 
LastOrDefault([pred: T -> boolean]): T 
SingleOrDefault([pred: T -> boolean]): T 
ElementAtOrDefault(index: integer): T 
Запрос First возвращает первый элемент последовательности, запрос 
Last — последний элемент, запрос Single — единственный элемент после-
довательности, а запрос ElementAt — элемент с индексом index. При указа-
нии дополнительного параметра — предиката pred запросы обрабатывают 
только те элементы последовательности, которые удовлетворяют указан-
ному предикату. 
Запросы, имеющие суффикс OrDefault, выполняются аналогично запро-
сам без суффикса, однако при отсутствии требуемого элемента запросы с 
суффиксом OrDefault возвращают нулевое значение для типа T (тогда как 
запросы без OrDefault возбуждают исключение
4
). Напомним, что нулевым 
4
Если в программе возбуждается исключение (говорят также, что в программе возни-
кает исключительная ситуация), то при отсутствии в ней специальных средств для пе-
рехвата и обработки исключения (так называемых try-блоков) происходит аварийное 
завершение программы. Использование try-блоков в Паскале кратко описывается, 
например, в [2, п. 12.5]. 


62 
значением для числовых типов является число 0 данного типа, для символа 
— это символ с кодом 0, а для строки — константа nil. 
Заметим, что запросы Single и SingleOrDefault всегда возбуждают ис-
ключение, если количество требуемых элементов больше одного. Они дей-
ствуют по-разному, если требуемые элементы отсутствуют: в этом случае 
запрос Single возбуждает исключение, а запрос SingleOrDefault возвращает 
нулевое значение. 
Как уже отмечалось в предыдущей главе (см. п. 3.4), запрос ElementAt, 
как правило, выполняется медленно, поэтому его не следует использовать 
для перебора всех элементов последовательности в цикле. 
Перейдем к запросам-квантификаторам

Download 1.62 Mb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   71




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling