Programming Taskbook 0


Download 1.62 Mb.
Pdf ko'rish
bet52/71
Sana21.06.2023
Hajmi1.62 Mb.
#1644761
TuriУчебное пособие
1   ...   48   49   50   51   52   53   54   55   ...   71
Bog'liq
Abramyan-Pascal2016-1

Группировка
Методы sequence of T
 
GroupBy(keySel: T -> TKey): sequence of IGrouping
GroupBy(keySel: T -> TKey; elemSel: T -> TElem) 
: sequence of IGrouping 
GroupBy(keySel: T -> TKey;
finalSel: (TKey, sequence of T) -> TRes): sequence of TRes 
GroupBy(keySel: T -> TKey; elemSel: T -> TElem;
finalSel: (TKey, sequence of TElem) -> TRes): sequence of TRes 
* Batch(size: integer): sequence of sequence of T 
* Batch(size: integer; func: sequence of T -> TRes):
sequence of TRes 
* Pairwise: sequence of (T,T)
* Pairwise(func: (T,T) -> TRes): sequence of TRes 
Первый параметр любого варианта запроса GroupBy представляет со-
бой лямбда-выражение keySel (селектор ключа), определяющее ключ груп-
пировки. Если этот параметр является единственным, то результатом вы-
полнения метода GroupBy является последовательность с элементами спе-
циального обобщенного типа IGrouping. Данный тип представляет 
собой последовательность элементов типа T и, кроме того, имеет дополни-
тельное свойство Key типа TKey, которое можно рассматривать как некото-
рую общую характеристику (ключ) всех элементов, входящих в эту после-
довательность. Таким образом, в результате выполнения запроса GroupBy с 
одним параметром мы получим последовательность, каждый элемент ко-
торой, в свою очередь, тоже является последовательностью, а именно — 
группой тех элементов исходной последовательности, которые имеют 
одинаковый ключ. При этом значение ключа любой группы элементов 
можно получить, обратившись к свойству Key данной группы.
Приведем пример: 
var a := Seq(10, 29, 33, 84, 40, 59, 52, 53, 60); 
var res := a.GroupBy(e -> e mod 10); 
Writeln(res); // [[10,40,60],[29,59],[33,53],[84],[52]] 
Мы сгруппировали исходную последовательность чисел по ключу — 
последней цифре числа. Таким образом, в каждую группу попали все эле-


Download 1.62 Mb.

Do'stlaringiz bilan baham:
1   ...   48   49   50   51   52   53   54   55   ...   71




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