Страница 461 из 502
public List<T> GetRange(int index, int count) - Возвращает часть вызывающей коллекции. Часть возвращаемой коллекции начинается с элемента, указываемого по индексу index, и включает количество элементов, задаваемое параметром count. Возвращаемый объект ссылается на те же элементы, что и вызывающий объект
public int IndexOf(T item) - Возвращает индекс первого вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1
public void InsertRange(int index, IEnumerable<T> collection) - Вставляет элементы коллекции collection в вызывающую коллекцию, начиная с элемента, указываемого по индексу index
public int LastlndexOf(T item) - Возвращает индекс последнего вхождения элемента item в вызывающей коллекции. Если искомый элемент не обнаружен, возвращается значение -1
public void RemoveRange(int index, int count) - Удаляет часть вызывающей коллекции, начиная с элемента, указываемого по индексу index, и включая количество элементов, определяемое параметром count
public void Reverse() - Располагает элементы вызывающей коллекции в обратном порядке
public void Reverse(int index, int count) - Располагает в обратном порядке часть вызывающей коллекции, начиная с элемента, указываемого по индексу index, и включая количество элементов, определяемое параметром count
public void Sort() - Сортирует вызывающую коллекцию по нарастающей
public void Sort(IComparer<T> comparer) - Сортирует вызывающую коллекцию, используя для сравнения способ, задаваемый параметром comparer. Если параметр comparer имеет пустое значение, то для сравнения используется способ, выбираемый по умолчанию
public void Sort(Comparison<T> comparison) - Сортирует вызывающую коллекцию, используя для сравнения указанный делегат
public void Sort(int index, int count, IComparer<T> comparer) - Сортирует вызывающую коллекцию, используя для сравнения способ, задаваемый параметром comparer. Сортировка начинается с элемента, указываемого по индексу index, и включает количество элементов, определяемых параметром count. Если параметр comparer имеет пустое значение, то для сравнения используется способ, выбираемый по умолчанию
public T [ ] ToArray() - Возвращает массив, содержащий копии элементов вызывающего объекта
public void TrimExcess() - Сокращает емкость вызывающей коллекции таким образом, чтобы она не превышала 10% от количества элементов, хранящихся в ней на данный момент
В классе List<T> определяется также собственное свойство Capacity, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Это свойство объявляется следующим образом.
<b>public int Capacity { get; set; }</b>
Свойство Capacity позволяет установить и получить емкость вызывающей коллекции в качестве динамического массива. Эта емкость равна количеству элементов, которые может содержать коллекция до ее вынужденного расширения. Такая коллекция расширяется автоматически, и поэтому задавать ее емкость вручную необязательно. Но из соображений эффективности это иногда можно сделать, если заранее известно количество элементов коллекции. Благодаря этому исключаются издержки на выделение дополнительной памяти.
В классе List<T> реализуется также приведенный ниже индексатор, определенный в интерфейсе IList<T>.
public Т this[int index] { get; set; }
С помощью этого индексатора устанавливается и получается значение элемента коллекции, указываемое по индексу index.
В приведенном ниже примере программы демонстрируется применение класса List<T>. Это измененный вариант примера, демонстрировавшего ранее класс ArrayList. Единственное изменение, которое потребовалось для этого, заключалось в замене класса ArrayList классом List, а также в использовании параметров обобщенного типа.
<b>// Продемонстрировать применение класса List<T>.</b>
<b>using System;</b>
<b>using System.Collections.Generic;</b>
<b>class GenListDemo {</b>
<b> static void Main() {</b>
<b> // Создать коллекцию в виде динамического массива.</b>
<b> List<char> lst = new List<char>();</b>
<b> Console.WriteLine("Исходное количество элементов: " + lst.Count);</b>
<b> Console.WriteLine();</b>
<b> Console.WriteLine("Добавить 6 элементов");</b>
<b> // Добавить элементы в динамический массив.</b>
<b> lst.Add('С');</b>
<b> lst.Add('А');</b>
<b> lst.Add('Е');</b>
<b> lst.Add('В');</b>
<b> lst.Add('D');</b>
<b> lst.Add('F');</b>
<b> Console.WriteLine("Количество элементов: " + lst.Count);</b>
<b> // Отобразить содержимое динамического массива,</b>
<b> // используя индексирование массива.</b>
<b> Console.Write("Текущее содержимое: ");</b>
<b> for (int i=0; i < lst.Count;. i++)</b>
<b> Console.Write(lst[i] + " ");</b>
<b> Console.WriteLine("n");</b>
<b> Console.WriteLine("Удалить 2 элемента ");</b>
<b> // Удалить элементы из динамического массива.</b>
<b> lst.Remove('F');</b>