Методы Single, SingleOrDefault

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

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

function Single(): T;
      Возвращает единственный элемент последовательности и генерирует исключение, если число элементов последовательности отлично от 1.
function Single(predicate: T->boolean): T;
      Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, и генерирует исключение, если таких элементов больше одного.
function SingleOrDefault(): T;
      Возвращает единственный элемент последовательности или значение по умолчанию, если последовательность пуста; если в последовательности более одного элемента, генерируется исключение.
function SingleOrDefault(predicate: T->boolean): T;
      Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, или значение по умолчанию, если такого элемента не существует; если условию удовлетворяет более одного элемента, генерируется исключение.

Пример

begin
  var a := Arr(1,2,3,4);
  Println(a.Single); // исключение
  Println(a.Single(x -> x>3); // 4
  Println(a.SingleOrDefault(x -> x>5); // 0
end.