В классе 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) - Добавляет элементы из коллекции collection в конец вызывающей коллекции типа ArrayListpublic virtual int BinarySearch(T
item) - Выполняет поиск в вызывающей коллекции значения, задаваемого параметром item. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортированpublic int BinarySearch(T
item, IComparercomparer) - Выполняет поиск в вызывающей коллекции значения, задаваемого параметром item, используя для сравнения указанный способ, определяемый параметром comparer. Возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортированpublic int BinarySearch(int
index, intcount,Titem, IComparercomparer) - Выполняет поиск в вызывающей коллекции значения, задаваемого параметром item, используя для сравнения указанный способ, определяемый параметром comparer. Поиск начинается с элемента, указываемого по индексу index, и включает количество элементов, определяемых параметром count. Метод возвращает индекс совпавшего элемента. Если искомое значение не найдено, возвращается отрицательное значение. Вызывающий список должен быть отсортированpublic List GetRange(int
index, intcount) - Возвращает часть вызывающей коллекции. Часть возвращаемой коллекции начинается с элемента, указываемого по индексу index, и включает количество элементов, задаваемое параметром count. Возвращаемый объект ссылается на те же элементы, что и вызывающий объектpublic int IndexOf(T
item) - Возвращает индекс первого вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1public void InsertRange(int
index, IEnumerable collection) - Вставляет элементы коллекции collection в вызывающую коллекцию, начиная с элемента, указываемого по индексу indexpublic int LastlndexOf(T
item) - Возвращает индекс последнего вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1public void RemoveRange(int
index, intcount) - Удаляет часть вызывающей коллекции, начиная с элемента, указываемого по индексу index, и включая количество элементов, определяемое параметром countpublic void Reverse() -
Располагает элементы вызывающей коллекции в обратном порядкеpublic void Reverse(int
index, intcount) - Располагает в обратном порядке часть вызывающей коллекции, начиная с элемента, указываемого по индексу index, и включая количество элементов, определяемое параметром countpublic void Sort() -
Сортирует вызывающую коллекцию по нарастающей