Поделиться через


Управление объектами с помощью коллекций

Обновлен: Ноябрь 2007

Коллекции — это идеальное средство для управления набором объектов. Можно добавлять объекты в коллекцию, удалять и извлекать их оттуда по индексу или ключу и просматривать элементы коллекции с помощью Инструкция For Each... Next (Visual Basic).

Нестрого типизированные коллекции

В гибкости коллекций заключается угроза надежности классов. Например, коллекция, предоставляемая Visual Basic хранит все его элементы как тип Object, поэтому в нее можно добавить элемент любого типа данных. Защита от добавления неверных типов данных отсутствует, поэтому при доступе к элементу необходимо преобразовать его из Object к необходимому типу.

Специализированные коллекции

.NET Framework предоставляет несколько альтернатив коллекции Visual Basic. Пространство имен System.Collections содержит классы коллекций с определенной функциональностью, такие как очередь или отсортированный список, а пространство имен System.Collections.Specialized содержит коллекцию классов специализированного характера, например HybridDictionary.

Строго типизированные коллекции

Чтобы устранить недостатки элементов типа Object, можно использовать универсальные коллекции пространства имен System.Collections.Generic. Эти коллекции являются строго типизированными и позволяют ограничить элементы коллекции только одним конкретным типом данных.

Подходы к использованию коллекций

Существуют три общих подхода к реализации управления объектами с помощью коллекций. Рассмотрим приложение, определяющее класс widgetRepository, который формирует и предоставляет объекты widget клиентским компонентам. Чтобы реализовать widgetRepository с помощью коллекций, можно использовать одну из следующих стратегий.

  • Использование класса коллекций. В классе widgetRepository объявите переменную widgetsColl как экземпляр класса Классы коллекций в Visual Basic или одного из классов в пространстве имен System.Collections, System.Collections.Generic или System.Collections.Specialized. Сделайте переменную открытой и используйте ключевое слово New (Visual Basic) для создания экземпляра коллекции. Дополнительные сведения см. в разделе Практическое руководство. Определение коллекций в классах.

  • Наследование базового класса коллекции. Реализуйте собственный класс widgetsColl посредством наследования от CollectionBase. В классе widgetRepository определите экземпляр класса widgetsColl и свойство, возвращающее данный экземпляр. Дополнительные сведения см. в разделе Практическое руководство. Определение коллекций в классах.

  • Самостоятельное создание коллекции. Реализуйте функциональные возможности коллекции в классе widgetRepository, написав соответствующие классы и процедуры. Этот подход наиболее предпочтителен, если класс должен обладать функциональными возможностями коллекции, но не может наследовать ни от какого класса типа коллекции. Это возможно в редких случаях, например, когда требуется наследование класса из класса, отличного от класса коллекции. Поскольку он не может наследоваться более чем от одного класса, необходимо определить и реализовать члены коллекции.

См. также

Основные понятия

Управление группами объектов

Классы коллекций в Visual Basic

Ссылки

System.Collections

System.Collections.Generic

System.Collections.Specialized