Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Операция reject




Операция reject отбирает в выходную коллекцию только те объекты, которые не удовлетворяют заданному условию. По смыслу она противоположна операции select. В примере:

Computer.allInstances->reject(Memory < 512)

будет получен тот же результат, что и при использовании выражения:

Computer.allInstances->select (Memory >= 512)

Выделение элементов коллекции

Для получения первого элемента в коллекции применяется операция First. Для получения последнего элемента в коллекции применяется операция Last. Выделение объекта по его номеру в коллекции выполняет операция At — номер нужного объекта задается в качестве параметра (нумерация начинается с единицы).

Например, следующее выражение получает последний элемент из коллекции компьютеров:

Computer.allInstances->last

Получить название (свойство Name) процессора (свойство Processor) первого элемента текущей коллекции компьютеров можно следующим образом:

Computer.allInstances->first.Processor.Name

Получить объект, представляющий мышь пятого компьютера текущего набора можно следующим образом:

Computer.allInstances->At(5).Mouse

Упорядочение набора

Применение операций выделения первого и последнего элементов не всегда имеет смысл, если исходная коллекция не упорядочена. Упорядочение наборов данных производится операциями OrderBy и OrderDescending. Они выполняют сортировку по заданному параметру, причем операция OrderDescending выполняет сортировку «в порядке убывания» — способом, противоположным Order By. Конкретный способ сортировки коллекций с помощью операции OrderBy определяется реализацией.

Например, отсортируем набор объектов-компьютеров по именам:

Computer.allInstances->OrderBy(Name)

Логические итераторы

Проверка выполнения логического условия для всех элементов коллекции осуществляется с помощью итератора ForAll. Пусть, например, в классе Computer имеется свойство Mouse (отдельный класс), а у него, в свою очередь, имеется логическое свойство isMiddleButton (наличие средней кнопки мыши). Тогда выражение:

Computer.allInstances->ForAll(Mouse.IsMiddleButton) вернет значение True, если все без исключения компьютеры коллекции оснащены трехкнопочными мышами.

Итератор Exists, схожий по смыслу с итератором ForAll, возвращает значение True, если хотя бы один из элементов коллекции соответствует заданному условию:

Computer.allInstances->Exists(Mouse.IsMiddleButton)


Поделиться:

Дата добавления: 2015-04-04; просмотров: 154; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты