Иллюстрированный самоучитель по Visual Basic .NET

ICollection

Интерфейс ICollection определяется производным от IEnumerable; он дополняет этот интерфейс тремя свойствами, доступными только для чтения, и одним новым методом. Класс ICollection редко реализуется самостоятельно. Как правило, он образует базу для интерфейсов IList и IDictionary (см. ниже). Члены этого интерфейса перечислены в табл. 5.2.

Таблица 5.2. Члены интерфейса ICollection.

Метод/свойство Описание
Count (свойство) Возвращает количество элементов в коллекции
IsSynchronized (свойство) Используется в многопоточных приложениях (см. главу 12). Свойство возвращает True, если доступ к коллекции синхронизируется с учетом многопоточного доступа
SyncRoot (свойство) Также используется в многопоточных приложениях (см. главу 12). Свойство возвращает объект для синхронизации доступа к коллекции
CopyТо (метод) Копирует элементы из коллекции в массив, начиная с заданной позиции

Примечание
Интерфейс ICollection реализуется классом
System.Collections.CollectionBase.IList.

Интерфейс IList обеспечивает выборку элементов коллекции по индексу. Разумеется, поскольку этот интерфейс определяется производным от IEnumerable, при этом сохраняется возможность использования For-Each. Иерархия наследования IList выглядит следующим образом:

IEnumerable › ICollection › IList

Интерфейс IList относительно сложен – он состоит из трех свойств и семи методов (табл. 5.3). Напомним, что некоторые из методов могут быть пустыми, если в каком-то конкретном классе их реализация не имеет смысла.

Таблица 5.3. Члены интерфейса IList.

Метод/свойство Описание
IsFixedSize (свойство) Логическое свойство. Показывает, имеет ли коллекция фиксированный размер
IsReadOnly (свойство) Логическое свойство. Показывает, доступна ли коллекция только для чтения
Item (свойство) Свойство доступно для чтения и записи. Используется для получения и присваивания значения объекта с заданным индексом
Add (ByVal value As Object) As Integer (метод) Включает объект в текущую позицию списка. Метод должен возвращать индекс, присвоенный добавленному элементу
Clear (метод) Удаляет все элементы из списка
Contains (ByVal value As Object) As Boolean (метод) Метод предназначен для проверки наличия в списке заданного значения. Эффективная реализация этого метода иногда бывает весьма нетривиальной задачей. Если элемент присутствует в списке, метод возвращает True; в противном случае возвращается False
IndexOf (ByVal value As Object) As Integer (метод) Возвращает индекс заданного объекта в списке (программист также должен учитывать эффективность реализации этого метода)
Insert(ByVal index As Integer, ByVal value As Object) (метод) Вставляет объект в заданную позицию списка
Remove(ByVal value As Object) (метод) Удаляет первое вхождение заданного объекта в списке
Remove(ByVal index As Integer) (метод) Удаляет элемент, находящийся в заданной позиции

Примечание
Интерфейс IList реализуется классом System.Collections.CollectionBase
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.