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 Общие типы
* Типы указателей
* Классы коллекций и связанные типы
* Процедурные типы
* Типы, связанные с регулярными выражениями
*
* Общие подпрограммы
* Подпрограммы ввода-вывода
* Функции для работы с последовательностями
* Подпрограммы для работы с динамическими массивами