Обобщенные коллекции определяются в ряде интерфейсов и классов, реализующих эти интерфейсы. Все они описываются далее по порядку.

Интерфейсы обобщенных коллекций

В пространстве именSystem. Collections. Genericопределен целый ряд интерфейсов обобщенных коллекций, имеющих соответствующие аналоги среди интерфейсов необобщенных коллекций. Все эти интерфейсы сведены в табл. 25.10.

Таблица 25.10. Интерфейсы обобщенных коллекций

Интерфейс Описание

lCollection Определяет основополагающие свойства обобщенных

коллекций

1Сотрагег<т> Определяет обобщенный метод Compare () для сравнения объектов, хранящихся в коллекции lDictionary Определяет обобщенную коллекцию, состоящую из пар

“ключ-значение"

Окончание табл. 25.10

Интерфейс

Описание

IEnumerable

Определяет обобщенный метод GetEnumerator (),

-

предоставляющий перечислитель для любого класса

коллекции

Enumerator

Предоставляет методы, позволяющие получать содержи

мое коллекции по очереди

IEqualityComparer

Сравнивает два объекта на предмет равенства

IList

Определяет обобщенную коллекцию, доступ к которой

можно получить с помощью индексатора

Интерфейс ICollection

В интерфейсеICollectionопределен ряд свойств, которые являются общими для всех обобщенных коллекций. ИнтерфейсICollectionявляется обобщенным вариантом необобщенного интерфейсаicollection,хотя между ними имеются некоторые отличия.

Итак, в интерфейсеICollectionопределены следующие свойства.

int Count { get; } bool IsReadOnly { get; }

СвойствоCountсодержит ряд элементов, хранящихся в данный момент в коллекции. А свойствоIsReadOnlyимеет логическое значениеtrue,если коллекция доступна только для чтения. Если же коллекция доступна как для чтения, так и для записи, то данное свойство имеет логическое значение false.

Кроме того, в интерфейсеICollectionопределены перечисленные ниже методы. Обратите внимание на то, что в этом обобщенном интерфейсе определено несколько большее количество методов, чем в его необобщенном аналоге.

Метод

Описание

void Add(Titem)

void Clear()

bool Contains(Titem)

void CopyTo(T[]array,intarraylndex)

void Remove(Titem)

Добавляет элемент item в вызывающую коллекцию. Генерирует исключение NotSupportedException, если коллекция доступна только для чтения Удаляет все элементы из вызывающей коллекции Возвращает логическое значение true, если вызывающая коллекция содержит элемент item, а иначе — логическое значение false

Копирует содержимое вызывающей коллекции в массив array, начиная с элемента, указываемого по индексу

arraylndex

Удаляет первое вхождение элемента item в вызывающей коллекции. Возвращает логическое значение true, если элемент i tem удален. А если этот элемент не найден в вызывающей коллекции, то возвращается логическое значение false

Некоторые из перечисленных выше методов генерируют исключениеNotSupportedException,если коллекция доступна только для чтения.

А поскольку интерфейсICollectionнаследует от интерфейсовIEnumerableиIEnumerable,то он включает в себя также обобщенную и необобщенную формы методаGetEnumerator ().

Перейти на страницу:

Похожие книги