Методы Join
Описание методов
Методы приведены для последовательности sequence of T
.
function Join<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res): sequence of Res;
Объединяет две последовательности на основе сопоставления ключей в третью последовательность. Функция resultSelector задаёт проекцию элементов двух последовательностей с одинаковыми значениями ключа в элемент третьей последовательности.
|
function Join<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res; comparer: System.Collections.Generic.IEqualityComparer<Key>): sequence of Res;
Объединяет две последовательности на основе сопоставления ключей в третью последовательность. Функция resultSelector задаёт проекцию элементов двух последовательностей с одинаковыми значениями ключа в элемент третьей последовательности. Для сравнения ключей используется компаратор comparer. |
Пример
begin
var
people := Arr((1,'Иванов'),(2,'Попов'),(3,'Сидоров'));
var
subjects := Arr((1,'История'),(1,'Математика'),(2,'История')
,(3,'Математика'),(1,'Русский'),(2,'Физика'));
people.Join(subjects,p->p[0],s->s[0],(p,s)->(p[1],s[1])).Println(NewLine);
end.
Вывод:
(Иванов,История)
(Иванов,Математика)
(Иванов,Русский)
(Попов,История)
(Попов,Физика)
(Сидоров,Математика)