Класс List
В классе List реализуется обобщенный динамический массив. Он ничем принципиально не отличается от класса необобщенной коллекции ArrayList. В этом классе реализуются интерфейсы ICollection, ICollection, IList, IList, IEnumerable и IEnumerable. У класса List имеются следующие конструкторы.
public List()
public List(IEnumerable collection) public List(int capacity)
Первый конструктор создает пустую коллекцию класса List с выбираемой по умолчанию первоначальной емкостью. Второй конструктор создает коллекцию типа List с количеством инициализируемых элементов, которое определяется параметром collection и равно первоначальной емкости массива. Третий конструктор создает коллекцию типа List, имеющую первоначальную емкость, задаваемую параметром capacity . В данном случае емкость обозначает размер базового массива, используемого для хранения элементов коллекции. Емкость коллекции, создаваемой в виде динамического массива, может увеличиваться автоматически по мере добавления в нее элементов.
В классе List определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.15.
Таблица 25.15. Наиболее часто используемые методы, определенные в классе List
Метод
Описание
public virtual void AddRange(Icollection - collection) public virtual int BinarySearch(T item)
Добавляет элементы из коллекции collection в конец вызывающей коллекции типа ArrayList
Выполняет поиск в вызывающей коллекции значения, задаваемого параметром item. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован
Метод
Описание
public
int BinarySearch(T
Выполняет поиск в вызывающей коллекции значе
item,
IComparer comparer)
ния, задаваемого параметром item , используя для сравнения указанный способ, определяемый параметром comparer. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован
public
int BinarySearch(int
Выполняет поиск в вызывающей коллекции значе
index,
int count, T item,
ния, задаваемого параметром item , используя для
IComparer comparer)
сравнения указанный способ, определяемый параметром comparer. Поиск начинается с элемента, указываемого по индексу index, и включает количество элементов, определяемых параметром count. Метод возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортирован
public
List GetRange(int
Возвращает часть вызывающей коллекции. Часть
index,
int count)
возвращаемой коллекции начинается с элемента, указываемого по индексу index , и включает количество элементов, задаваемое параметром count. Возвращаемый объект ссылается на те же элементы, что и вызывающий объект
public
int IndexOf(T item)
Возвращает индекс первого вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1
public
void InsertRange(int
Вставляет элементы коллекции collection в вы
index,
IEnumerable
зывающую коллекцию, начиная с элемента, указы
collection)
ваемого по индексу index
public i tern)
int LastlndexOf(T
Возвращает индекс последнего вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1
public
void RemoveRange(int
Удаляет часть вызывающей коллекции, начиная с
index,
int count)
элемента, указываемого по индексу index , и включая количество элементов, определяемое параметром count
public
Читать дальше