Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling