Методы расширения последовательностей

function AdjacentGroup<T>(Self: sequence of T): sequence of array of T;
        Группирует одинаковые подряд идущие элементы, получая последовательность массивов
function AdjacentGroupBy<T,TKey>(self: sequence of T; by: T->TKey; comp: IEqualityComparer<TKey>): sequence of System.Linq.IGrouping<TKey, T>;
        Группирует подряд идущие элементы с одинаковыми значениями ключамиИспользует компаратор comp
function AdjacentGroupBy<T,TKey>(self: sequence of T; by: T->TKey);
        Группирует подряд идущие элементы с одинаковыми значениями ключамиИспользует компаратор по-умолчанию
function Average(Self: sequence of BigInteger): real;
        Возвращает среднее элементов последовательности
function Batch<T>(Self: sequence of T; size: integer): sequence of array of T;
        Разбивает последовательность на серии длины size
function Batch<T, Res>(Self: sequence of T; size: integer; proj: Func<array of T, Res>): sequence of Res;
        Разбивает последовательность на серии длины size и применяет проекцию к каждой серии
function Cartesian<T, T1, TRes>(Self: sequence of T; b: sequence of T1; func: (T,T1)->TRes): sequence of TRes;
        Возвращает декартово произведение последовательностей, проектируя каждую пару на значение
function Cartesian<T, T1, T2, TRes>(Self: sequence of T; b: sequence of T1; c: sequence of T2; func: (T,T1,T2)->TRes): sequence of TRes;
        Возвращает декартово произведение последовательностей, проектируя каждую тройку на значение
function Cartesian<T, T1, T2, T3, TRes>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3; func: (T,T1,T2,T3)->TRes): sequence of TRes;
        Возвращает декартово произведение последовательностей, проектируя каждую четвёрку на значение
function Cartesian<T, T1, T2, T3, T4, TRes>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3; e: sequence of T4; func: (T,T1,T2,T3,T4)->TRes): sequence of TRes;
        Возвращает декартово произведение последовательностей, проектируя каждую пятёрку на значение
function Cartesian<T, T1>(Self: sequence of T; b: sequence of T1): sequence of (T, T1);
        Возвращает декартово произведение последовательностей в виде последовательности пар
function Cartesian<T, T1, T2>(Self: sequence of T; b: sequence of T1; c: sequence of T2): sequence of (T, T1, T2);
        Возвращает декартово произведение последовательностей в виде последовательности троек
function Cartesian<T, T1, T2, T3>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3): sequence of (T, T1, T2, T3);
        Возвращает декартово произведение последовательностей в виде последовательности четвёрок
function Cartesian<T, T1, T2, T3, T4>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3; e: sequence of T4): sequence of (T, T1, T2, T3, T4);
        Возвращает декартово произведение последовательностей в виде последовательности пятёрок
function CountOf<T>(Self: sequence of T; x: T): integer;
        Возвращает количество элементов, равных указанному значению
function DistinctBy<T, TKey>(Self: sequence of T; by: T->TKey; comp: IEqualityComparer<TKey>): sequence of T;
        Возвращает элементы последовательности, ключи для которых отличаются, используя компоратор comp
function DistinctBy<T, TKey>(Self: sequence of T; by: T->TKey);
        Возвращает элементы последовательности, ключи для которых отличаются, используя компоратор по-умолчанию
function FirstOrDefault<T>(self: sequence of T; pred: T -> boolean; defaultValue: T): T;
        Возвращает первый элемент, удовлетворяющий условию, или значение по умолчанию, если ни одного такого элемента не найдено
function Flatten<T>(Self: sequence of sequence of T): sequence of T;
        Преобразует последовательность последовательностей в плоскую последовательность
procedure ForEach<T>(Self: sequence of T; action: T -> ());
        Применяет действие к каждому элементу последовательности
procedure ForEach<T>(Self: sequence of T; action: (T,integer) -> ());
        Применяет действие к каждому элементу последовательности, зависящее от номера элемента
function Incremental(Self: sequence of integer): sequence of integer;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: array of integer): sequence of integer;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: List<integer>): sequence of integer;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: LinkedList<integer>): sequence of integer;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: sequence of real): sequence of real;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: array of real): sequence of real;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: List<real>): sequence of real;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental(Self: LinkedList<real>): sequence of real;
        Возвращает последовательность разностей соседних элементов исходной последовательности
function Incremental<T, T1>(Self: sequence of T; func: (T,T)->T1): sequence of T1;
        Возвращает последовательность разностей соседних элементов исходной последовательности. В качестве функции разности используется func
function Incremental<T, T1>(Self: sequence of T; func: (T,T,integer)->T1): sequence of T1;
        Возвращает последовательность разностей соседних элементов исходной последовательности. В качестве функции разности используется func
function Interleave<T>(Self: sequence of T; a: sequence of T): sequence of T;
        Чередует элементы двух последовательностей
function Interleave<T>(Self: sequence of T; a, b: sequence of T): sequence of T;
        Чередует элементы трех последовательностей
function Interleave<T>(Self: sequence of T; a, b, c: sequence of T): sequence of T;
        Чередует элементы четырех последовательностей
function IsOrdered<T>(self: sequence of T; comparer: IComparer<T>): boolean;
        Проверяет, отсортирована ли последовательность по возрастанию в порядке, заданном компаратором comparer
function IsOrdered<T>(self: sequence of T): boolean; where T: IComparable<T>;
        Проверяет, отсортирована ли последовательность по возрастанию
function IsOrderedBy<T, TKey>(self: sequence of T; keySelector: T -> TKey;
        Проверяет, отсортирована ли последовательность по возрастанию ключа, используя компаратор
function IsOrderedBy<T, TKey>(self: sequence of T; keySelector: T -> TKey): boolean;
        Проверяет, отсортирована ли последовательность по возрастанию ключа
function IsOrderedByDescending<T, TKey>(self: sequence of T; keySelector: T -> TKey;
        Проверяет, отсортирована ли последовательность по убыванию ключа, используя компаратор
function IsOrderedByDescending<T, TKey>(self: sequence of T; keySelector: T -> TKey): boolean;
        Проверяет, отсортирована ли последовательность по убыванию ключа
function IsOrderedDescending<T>(self: sequence of T): boolean; where T: IComparable<T>;
        Проверяет, отсортирована ли последовательность по убыванию
function IsOrderedDescending<T>(self: sequence of T; comparer: IComparer<T>): boolean;
        Проверяет, отсортирована ли последовательность по убыванию в порядке, заданном компаратором comparer
function JoinToString<T>(Self: sequence of T; delim: string): string;
        Преобразует элементы последовательности в строковое представление, после чего объединяет их в строку, используя delim в качестве разделителя
function JoinToString<T>(Self: sequence of T): string;
        Преобразует элементы последовательности в строковое представление, после чего объединяет их в строку, используя пробел в качестве разделителя
function LastMaxBy<T, TKey>(Self: sequence of T; keySelector: T -> TKey): T;
        Возвращает последний элемент последовательности с максимальным значением ключа
function LastMinBy<T, TKey>(Self: sequence of T; keySelector: T -> TKey): T;
        Возвращает последний элемент последовательности с минимальным значением ключа
function MaxBy<T, TKey>(Self: sequence of T; keySelector: T -> TKey): T;
        Возвращает первый элемент последовательности с максимальным значением ключа
function MinBy<T, TKey>(Self: sequence of T; keySelector: T -> TKey): T;
        Возвращает первый элемент последовательности с минимальным значением ключа
function None<T>(Self: sequence of T; pred: T->boolean): boolean;
        Возвращает True, если ни один элемент не удовлетворяет условию
function Numerate<T>(Self: sequence of T): sequence of (integer, T);
        Нумерует последовательность с единицы
function Numerate<T>(Self: sequence of T; from: integer): sequence of (integer, T);
        Нумерует последовательность с номера from
function Nwise<T>(Self: sequence of T; n: integer): sequence of array of T;
        Превращает последовательность в последовательность массивов, содержащих n соседних элементов
function Order<T>(Self: sequence of T): sequence of T;
        Возвращает отсортированную по возрастанию последовательность
function Order(Self: sequence of string): sequence of string;
        Возвращает отсортированную по возрастанию последовательность
function OrderDescending<T>(Self: sequence of T): sequence of T;
        Возвращает отсортированную по убыванию последовательность
function OrderDescending(Self: sequence of string): sequence of string;
        Возвращает отсортированную по убыванию последовательность
function Pairwise<T>(Self: sequence of T): sequence of (T, T);
        Превращает последовательность в последовательность пар соседних элементов
function Pairwise<T, Res>(Self: sequence of T; func: (T,T)->Res): sequence of Res;
        Превращает последовательность в последовательность пар соседних элементов, применяет func к каждой паре полученных элементов и получает новую последовательность
function PartialSum(Self: sequence of integer): sequence of integer;
        Возвращает последовательность частичных сумм элементов последовательности
function PartialSum(Self: sequence of real): sequence of real;
        Возвращает последовательность частичных сумм элементов последовательности
function PartialSum(Self: sequence of BigInteger): sequence of BigInteger;
        Возвращает последовательность частичных сумм элементов последовательности
function Partition<T>(Self: sequence of T; cond: T->boolean): (sequence of T, sequence of T);
        Разделяет последовательность на две по заданному условию. Реализуется двухпроходным алгоритмом
function Partition<T>(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T, sequence of T);
        Разделяет последовательность на две по заданному условию, в котором участвует индекс. Реализуется двухпроходным алгоритмом
function Print<T>(Self: sequence of T; delim: string): sequence of T;
        Выводит последовательность на экран, используя delim в качестве разделителя
function Print<T>(Self: sequence of T): sequence of T;
        Выводит последовательность на экран, используя пробел в качестве разделителя
function PrintLines<T>(Self: sequence of T): sequence of T;
        Выводит последовательность, каждый элемент выводится на новой строке
function PrintLines<T,T1>(Self: sequence of T; map: T->T1): sequence of T;
        Выводит последовательность, каждый элемент отображается с помощью функции map и выводится на новой строке
function Println<T>(Self: sequence of T; delim: string): sequence of T;
        Выводит последовательность на экран, используя delim в качестве разделителя, и переходит на новую строку
function Println<T>(Self: sequence of T): sequence of T;
        Выводит последовательность на экран, используя пробел качестве разделителя, и переходит на новую строку
function Product(Self: sequence of real): real;
        Возвращает произведение элементов последовательности
function Product(Self: sequence of integer): int64;
        Возвращает произведение элементов последовательности
function Product(Self: sequence of int64): int64;
        Возвращает произведение элементов последовательности
function Product<T>(Self: sequence of T; f: T->real): real;
        Возвращает произведение элементов последовательности, спроецированных на числовое значение
function Product<T>(Self: sequence of T; f: T->integer): int64;
        Возвращает произведение элементов последовательности, спроецированных на числовое значение
function Product<T>(Self: sequence of T; f: T->BigInteger): BigInteger;
        Возвращает произведение элементов последовательности, спроецированных на числовое значение
function Product(Self: sequence of BigInteger): BigInteger;
        Возвращает произведение элементов последовательности
function Scan<T>(Self: sequence of T; func: (T,T) -> T): sequence of T;
        Возвращает последовательность, в которой первый элемент равен первому элементу исходной последовательности, а каждый следующий -результат применения функции func к предыдущему элементу новой последовательности и текущему элементу исходной
function Scan<T,T1>(Self: sequence of T; first: T1; func: (T1,T) -> T1): sequence of T1;
        Возвращает последовательность, в которой первый элемент равен first, а каждый следующий -результат применения функции func к предыдущему элементу новой последовательности и текущему элементу исходной
function SkipLast<T>(self: sequence of T; count: integer := 1): sequence of T;
        Возвращает последовательность без последних count элементов
function Slice<T>(Self: sequence of T; from, step: integer): sequence of T;
        Возвращает срез последовательности от номера from с шагом step > 0
function Slice<T>(Self: sequence of T; from, step, count: integer): sequence of T;
        Возвращает срез последовательности от номера from с шагом step > 0 длины не более count
function Sorted<T>(Self: sequence of T): sequence of T;
        Возвращает отсортированную по возрастанию последовательность
function SortedDescending<T>(Self: sequence of T): sequence of T;
        Возвращает отсортированную по убыванию последовательность
function SplitAt<T>(Self: sequence of T; ind: integer): (sequence of T, sequence of T);
        Разбивает последовательность на две в позиции ind. Реализуется двухпроходным алгоритмом
function Sum(Self: sequence of BigInteger): BigInteger;
        Возвращает сумму элементов последовательности
function Tabulate<T, T1>(Self: sequence of T; f: T->T1): sequence of (T, T1);
        Табулирует функцию последовательностью
function TakeLast<T>(Self: sequence of T; count: integer): sequence of T;
        Возвращает последние count элементов последовательности
function ToHashSet<T>(Self: sequence of T): HashSet<T>;
        Возвращает множество HashSet по данной последовательности
function ToLinkedList<T>(Self: sequence of T): LinkedList<T>;
        Возвращает LinkedList по данной последовательности
function ToSet<T>(Self: sequence of T): NewSet<T>;
        Возвращает множество по данной последовательности
function ToSortedSet<T>(Self: sequence of T): SortedSet<T>;
        Возвращает множество SortedSet по данной последовательности
function UnZipTuple<T, T1>(Self: sequence of (T, T1)): (sequence of T, sequence of T1);
        Разъединяет последовательность двухэлементных кортежей на две последовательности. Реализуется двухпроходным алгоритмом
function UnZipTuple<T, T1, T2>(Self: sequence of (T, T1, T2)): (sequence of T, sequence of T1, sequence of T2);
        Разъединяет последовательность трехэлементных кортежей на три последовательности. Реализуется многопроходным алгоритмом
function UnZipTuple<T, T1, T2, T3>(Self: sequence of (T, T1, T2, T3)): (sequence of T, sequence of T1, sequence of T2, sequence of T3);
        Разъединяет последовательность четырехэлементных кортежей на четыре последовательности. Реализуется многопроходным алгоритмом
function Windowed<T>(Self: sequence of T; n: integer): sequence of array of T;
        Превращает последовательность в последовательность массивов, содержащих n соседних элементов
function WriteLines(Self: sequence of string; fname: string): sequence of string;
        Выводит последовательность строк в файл
function Zip<T, T1, T2, TRes>(Self: sequence of T; b: sequence of T1; c: sequence of T2; func: (T,T1,T2) -> TRes): sequence of TRes;
        Применяет указанную функцию к соответствующим элементам кортежей, возвращает последовательность результатов
function Zip<T, T1, T2, T3, TRes>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3; func: (T,T1,T2,T3) -> TRes): sequence of TRes;
        Применяет указанную функцию к соответствующим элементам кортежей, возвращает последовательность результатов
function Zip<T, T1, T2, T3, T4, TRes>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3; e: sequence of T4; func: (T,T1,T2,T3,T4) -> TRes): sequence of TRes;
        Применяет указанную функцию к соответствующим элементам кортежей, возвращает последовательность результатов
function Zip<T, T1>(Self: sequence of T; b: sequence of T1): sequence of (T, T1);
        Объединяет две последовательности в последовательность двухэлементных кортежей
function Zip<T, T1, T2>(Self: sequence of T; b: sequence of T1; c: sequence of T2): sequence of (T, T1, T2);
        Объединяет три последовательности в последовательность трехэлементных кортежей
function Zip<T, T1, T2, T3>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3): sequence of (T, T1, T2, T3);
        Объединяет четыре последовательности в последовательность четырехэлементных кортежей
function Zip<T, T1, T2, T3, T4>(Self: sequence of T; b: sequence of T1; c: sequence of T2; d: sequence of T3; e: sequence of T4): sequence of (T, T1, T2, T3, T4);
        Объединяет четыре последовательности в последовательность четырехэлементных кортежей
function ZipTuple<T, T1>(Self: sequence of T; a: sequence of T1): sequence of (T, T1);
        Объединяет две последовательности в последовательность двухэлементных кортежей
function ZipTuple<T, T1, T2>(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2);
        Объединяет три последовательности в последовательность трехэлементных кортежей
function ZipTuple<T, T1, T2, T3>(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3);
        Объединяет четыре последовательности в последовательность четырехэлементных кортежей