PascalABC.NET

Метод проецирования SelectMany

Описание методов

Методы приведены для последовательности sequence of T.

function SelectMany<Res>(selector: T->sequence of Res): sequence of Res;       Проецирует каждый элемент последовательности в новую последовательность и объединяет результирующие последовательности в одну последовательность. Возвращает объединённую последовательность.
function SelectMany<Res>(selector: (T,integer)->sequence of Res): sequence of Res;
      Проецирует каждый элемент последовательности в новую последовательность с учетом индекса элемента и объединяет результирующие последовательности в одну последовательность. Возвращает объединённую последовательность.
function SelectMany<Coll,Res>(collSelector: (T,integer)->sequence of Coll; resultSelector: (T,Coll)->Res): sequence of Res;
      Проецирует каждый элемент последовательности в новую последовательность, объединяет результирующие последовательности в одну и вызывает функцию селектора результата для каждого элемента этой последовательности. Индекс каждого элемента исходной последовательности используется в промежуточной проецированной форме этого элемента. Возвращает объединённую последовательность.
function SelectMany<Coll,Res>(collSelector: T->sequence of Coll; resultSelector: (T,Coll)->Res): sequence of Res;
      Проецирует каждый элемент последовательности в новую последовательность, объединяет результирующие последовательности в одну и вызывает функцию селектора результата для каждого элемента этой последовательности. Возвращает объединённую последовательность.

Пример

begin
  var
a := Arr(Arr(1,2,3),Arr(4,5,6),Arr(7,8,9));
  a.SelectMany(x -> x).Println; // 1 2 3 4 5 6 7 8 9
end.