Добавить в цитаты Настройки чтения

Страница 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&lt;T&gt; определяется также собственное свойство Capacity, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Это свойство объявляется следующим образом.

<b>public int Capacity { get; set; }</b>

Свойство Capacity позволяет установить и получить емкость вызывающей коллекции в качестве динамического массива. Эта емкость равна количеству элементов, которые может содержать коллекция до ее вынужденного расширения. Такая коллекция расширяется автоматически, и поэтому задавать ее емкость вручную необязательно. Но из соображений эффективности это иногда можно сделать, если заранее известно количество элементов коллекции. Благодаря этому исключаются издержки на выделение дополнительной памяти.

В классе List&lt;T&gt; реализуется также приведенный ниже индексатор, определенный в интерфейсе IList&lt;T&gt;.

public Т this[int index] { get; set; }

С помощью этого индексатора устанавливается и получается значение элемента коллекции, указываемое по индексу index.

В приведенном ниже примере программы демонстрируется применение класса List&lt;T&gt;. Это измененный вариант примера, демонстрировавшего ранее класс ArrayList. Единственное изменение, которое потребовалось для этого, заключалось в замене класса ArrayList классом List, а также в использовании параметров обобщенного типа.

<b>// Продемонстрировать применение класса List&lt;T&gt;.</b>

<b>using System;</b>

<b>using System.Collections.Generic;</b>

<b>class GenListDemo {</b>

<b>  static void Main() {</b>

<b>    // Создать коллекцию в виде динамического массива.</b>

<b>    List&lt;char&gt; lst = new List&lt;char&gt;();</b>

<b>    Console.WriteLine(&quot;Исходное количество элементов: &quot; + lst.Count);</b>

<b>    Console.WriteLine();</b>

<b>    Console.WriteLine(&quot;Добавить 6 элементов&quot;);</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(&quot;Количество элементов: &quot; + lst.Count);</b>

<b>    // Отобразить содержимое динамического массива,</b>

<b>    // используя индексирование массива.</b>

<b>    Console.Write(&quot;Текущее содержимое: &quot;);</b>

<b>    for (int i=0; i &lt; lst.Count;. i++)</b>

<b>      Console.Write(lst[i] + &quot; &quot;);</b>

<b>    Console.WriteLine(&quot;n&quot;);</b>

<b>    Console.WriteLine(&quot;Удалить 2 элемента &quot;);</b>

<b>    // Удалить элементы из динамического массива.</b>

<b>    lst.Remove('F');</b>