Programming Taskbook 0


Download 1.62 Mb.
Pdf ko'rish
bet47/71
Sana21.06.2023
Hajmi1.62 Mb.
#1644761
TuriУчебное пособие
1   ...   43   44   45   46   47   48   49   50   ...   71
Bog'liq
Abramyan-Pascal2016-1


Глава 4. Запросы 
77 
вращается последовательность с этим элементом; если и это условие не 
выполняется, то возвращается пустая последовательность (которую мы со-
здаем с помощью вызова генератора SeqFill с нулевым первым парамет-
ром).
Данный вариант решения проигрывает в наглядности первому вариан-
ту (прежде всего, из-за использования вложенных тернарных операций). 
Кроме того, в нем приходится создавать вспомогательные последователь-
ности. Однако он интересен как еще одна иллюстрация возможностей за-
проса SelectMany. 
4.4.
Объединение. Запрос DefaultIfEmpty 
В данном и следующем пунктах рассматриваются наиболее сложные 
запросы, которые связаны с объединением последовательностей и группи-
ровкой их элементов.
Основными запросами для объединения являются Join и GroupJoin. 
Общим у этих запросов является то, что они обеспечивают объединение 
или группировку по ключу, определяемому по элементам исходных после-
довательностей. Вариантом объединяющего запроса может также считать-
ся запрос Zip. Все эти запросы входят в стандартную библиотеку платфор-
мы .NET. Библиотека PascalABC.NET содержит также несколько дополни-
тельных запросов, которые можно отнести к категории запросов объеди-
нения.
Близкими к запросам объединения могут считаться запросы комбини-
рования последовательностей, рассмотренные ранее (см. п. 4.2). Мы разде-
лили запросы комбинирования и объединения по следующему признаку: 
комбинирующие запросы возвращают последовательность, тип элементов 
которой совпадает с типом элементов исходных последовательностей, то-
гда как объединяющие запросы формируют последовательность с типом 
элементов, отличным от типов элементов исходных последовательностей. 
При описании запросов объединения будем предполагать, что после-
довательность, к которой применяется запрос, имеет тип sequence of T1. 

Download 1.62 Mb.

Do'stlaringiz bilan baham:
1   ...   43   44   45   46   47   48   49   50   ...   71




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