Выбрать главу

function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: System.T->Element; resultSelector: (Key,sequence of Element)->Res; comparer: IEqualityComparer<Key>): sequence of Res;

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.Значения ключей сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции.

Пример

Метод AsEnumerable

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

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

function AsEnumerable(): sequence of T;

Возвращает входные данные, приведенные к типу IEnumerable.

Пример

Методы ToArray, ToList

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

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

function ToArray(): array of T;

Создает массив из последовательности.

function ToList(): List<T>;

Создает список List из последовательности.

Пример

Метод ToDictionary

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

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

function ToDictionary<Key>(keySelector: T->Key): Dictionary<Key,T>;

Создает словарь Dictionary из последовательности соответствии с заданной функцией селектора ключа.

function ToDictionary<Key>(keySelector: T->Key; comparer: IEqualityComparer<Key>): Dictionary<Key,T>;

Создает словарь Dictionary из последовательности в соответствии с заданной функцией селектора ключа и компаратором ключей.

function ToDictionary<Key,Element>(keySelector: T->Key; elementSelector: T->Element): Dictionary<Key,Element>;

Создает словарь Dictionary из последовательности в соответствии с заданными функциями селектора ключа и селектора элемента.

function ToDictionary<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): Dictionary<Key,Element>;

Создает словарь Dictionary из последовательности в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента.

Пример

Метод ToLookup

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

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

function ToLookup<Key>(keySelector: T->Key): System.Linq.ILookup<Key,T>;

Создает объект System.Linq.Lookup из последовательности в соответствии с заданной функцией селектора ключа.

function ToLookup<Key>(keySelector: T->Key; comparer: IEqualityComparer<Key>): System.Linq.ILookup<Key,T>;

Создает объект System.Linq.Lookup из последовательности в соответствии с заданной функцией селектора ключа и компаратором ключей.

function ToLookup<Key,Element>(keySelector: T->Key; elementSelector: T->Element): System.Linq.ILookup<Key,Element>;

Создает объект System.Linq.Lookup из последовательности в соответствии с заданными функциями селектора ключа и селектора элемента.

function ToLookup<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): System.Linq.ILookup<Key,Element>;

Создает объект System.Linq.Lookup из последовательности в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента.

Пример

Метод OfType

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

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

function OfType<Res>(): sequence of Res;

Выполняет фильтрацию элементов объекта System.Collections.IEnumerable по заданному типу. Возвращает подпоследовательность данной последовательности. в которой все элементы принадлежат заданному типу.

Пример

Метод Cast

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

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

function Cast<Res>(): sequence of Res;

Преобразовывает элементы объекта System.Collections.IEnumerable в заданный тип.

Пример

Метод JoinIntoString

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

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

function JoinIntoString(delim: string := ' '): string;

Преобразует элементы последовательности в строковое представление, после чего объединяет их в строку, используя delim в качестве разделителя.

Пример

Управление памятью

Все ссылочные типы в .NET находятся под управлением так называемого сборщика мусора. Это значит, что выделенная вызовом конструктора память никогда не возвращается явно вызовом деструктора. После того как объект становится не нужным, ему следует присвоить nil.

При нехватке динамической памяти выполнение программы приостанавливается, и запускается специальная процедура, называемая сборкой мусора. Она определяет все так называемые достижимые объекты. Если на данный объект более никто не указывает, то он считается недостижимым и будет собран сборщиком мусора. Время вызова сборщика мусора считается неопределенным.

Например, при выполнении участка кода

type

Person = class

...

end;

var p: Person := new Person('Иванов',20);

...

p := nil;

память, отведенная под p, после присваивания ей nil станет недостижимой и будет собрана в непредсказуемый момент.

Отметим, что динамическая память, выделяемая процедурой New, не находится под управлением сборщика мусора, поэтому нуждается в явном освобождении вызовом процедуры Dispose. Именно поэтому работа с обычными указателями считается в PascalABC.NET устаревшей и не рекомендуется к использованию.

Системный модуль PABCSystem

Обзор системного модуля PABCSystem

Модуль PABCSystem называется системным и автоматически подключается первым к любой программе или модулю. Он содержит ряд процедур, функций, констант, типов.

* Константы модуля PABCSystem

* Типы модуля PABCSystem Общие типы

* Типы указателей

* Классы коллекций и связанные типы

* Процедурные типы

* Типы, связанные с регулярными выражениями

*

* Общие подпрограммы

* Подпрограммы ввода-вывода

* Функции для работы с последовательностями

* Подпрограммы для работы с динамическими массивами