IList
Интерфейс IList обеспечивает выборку элементов коллекции по индексу. Разумеется, поскольку этот интерфейс определяется производным от I Enumerable, при этом сохраняется возможность использования 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) (метод) |
Удаляет элемент, находящийся в заданной позиции |