В пространстве имен System.Collections определены наборы стандартных коллекций и интерфейсов, которые реализованы в этих коллекциях. В табл. 13.2 приведены наиболее важные интерфейсы, часть из которых мы уже изучали в разделе «Стандартные интерфейсы.NET» (см. с. 198).
Таблица 13.2. Интерфейсы пространства имен System.Collections
Интерфейс Назначение
ICollection Определяет общие характеристики (например, размер) для набора элементов
IComparer Позволяет сравнивать два объекта
IDictionary Позволяет представлять содержимое объекта в виде пар «имя—значение»
IDictionaryEnumerator Используется для нумерациисодержимого объекта, поддерживающего
интерфейс IDictionary
IEnumerable Возвращает интерфейс IEnumerator для указанного объекта
IEnumerator Обычно используется для поддержки оператора foreach в отношении
объектов
IHashCodeProvider Возвращает хеш-код для реализации типа с применением выбранного
пользователем алгоритма хеширования
IList Поддерживает методы добавления, удаления и индексирования элементов в
списке объектов
В табл. 13.3 перечислены основные коллекции, определенные в пространстве System. Collections1.
|
|
Таблица 13.3. Коллекции пространства имен System.Collections
Класс | Назначение | Важнейшие из реализованных интерфейсов |
ArrayList | Массив, динамически изменяющий свой размер | IList, ICollection, IEnumerable, ICloneable |
BitArray | Компактный массив для хранения битовых значений | ICollection, IEnumerable, ICloneable |
Hashtable | Хеш-таблица | IDictionary, ICollection, IEnumerable, ICloneable |
Queue | Очередь | ICollection, ICloneable, IEnumerable |
SortedList | Коллекция, отсортированная по ключам. Доступ к элементам — по ключу или по индексу | IDictionary, ICollection, IEnumerable, ICloneable |
Stack | Стек | ICollection, IEnumerable |
Пространство имен System.Collections.Specialized включает специализированные коллекции, например коллекцию строк StringCollection и хеш-таблицу со строковыми ключами StringDictionary. В качестве примера стандартной коллекции рассмотрим класс ArrayList.