Метод GroupBy
Описание методов
Методы приведены для последовательности sequence of T
.
function GroupBy<Key>(keySelector: T->Key): IEnumerable<IGrouping<Key,T>>;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и возвращает последовательность групп; каждая группа соответствует одному значению ключа.
|
function GroupBy<Key>(keySelector: T->Key; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<IGrouping<Key,T>>;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа, сравнивает ключи с помощью указанного компаратора и возвращает последовательность групп; каждая группа соответствует одному значению ключа. |
function GroupBy<Key,Element>(keySelector: T->Key; elementSelector: T->Element): IEnumerable<IGrouping<Key,T>>;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и проецирует элементы каждой группы с помощью указанной функции. Возвращает последовательность групп; каждая группа соответствует одному значению ключа. |
function GroupBy<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): IEnumerable<IGrouping<Key,Element>>;
Группирует элементы последовательности в соответствии с функцией селектора ключа.Ключи сравниваются с помощью компаратора, элементы каждой группы проецируются с помощью указанной функции. |
function GroupBy<Key,Res>(keySelector: T->Key; resultSelector: (Key,sequence of T)->Res): sequence of Res;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. |
function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: T->Element; resultSelector: (Key,sequence of Element)->Res): sequence of Res;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Элементы каждой группы проецируются с помощью указанной функции. |
function GroupBy<Key,Res>(keySelector: T->Key; resultSelector: (Key,sequence of T)->Res; comparer: IEqualityComparer<Key>): sequence of Res;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Ключи сравниваются с использованием заданного компаратора. |
function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: System.T->Element; resultSelector: (Key,sequence of Element)->Res; comparer: IEqualityComparer<Key>): sequence of Res;
Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Значения ключей сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции. |
Пример
begin
var
a := Arr(('Иванов',3),('Попов',1),('Авилов',1),
('Козлов',3),('Ослов',2),('Рогов',1));
var groups
:= a.GroupBy(s->s[1]);
foreach var
g in groups do
begin
Print(g.Key+':');
g.Select(x->x[0]).Println;
end;
end.
Вывод:
3: Иванов
Козлов
1: Попов Авилов Рогов
2: Ослов