С другой стороны, если требуется сократить размер базового массива коллекции типаArrayList,то для этой цели достаточно установить меньшее значение свойстваCapacity.Но это значение не должно быть меньше значения свойстваCount.Напомним, что свойствоCountопределено в интерфейсеICollectionи содержит количество объектов, хранящихся в коллекции на данный момент. Всякая попытка установить значение свойстваCapacityменьше значения свойстваCountприводит к генерированию исключенияArgumentOutOfRangeException.Поэтому для получения такого количества элементов коллекции типаArrayList,которое содержится в ней на данный момент, следует установить значение свойстваCapacityравным значению свойстваCount.Для этой цели можно также вызвать методTrimToSize ().

В приведенном ниже примере программы демонстрируется применение классаArrayList.В ней сначала создается коллекция типаArrayList,а затем в эту коллекцию вводятся символы, после чего содержимое коллекции отображается. Некоторые элементы затем удаляются из коллекции, и ее содержимое отображается вновь. После этого в коллекцию вводятся дополнительные элементы, что вынуждает увеличить ее емкость. И наконец, содержимое элементов коллекции изменяется.

// Продемонстрировать применение класса ArrayList.

using System;

using System.Collections;

class ArrayListDemo { static void Main() {

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

ArrayList al = new ArrayList ();

Console.WriteLine("Исходное количество элементов: " + al.Count);

Console.WriteLine();

Console.WriteLine("Добавить 6 элементов");

// Добавить элементы в динамический массив.

al.Add('С');

al.Add('А'); al.Add('E') ; al.Add(1В1) ; al.Add('D') ; al.Add(1F') ;

Console.WriteLine("Количество элементов: " + al.Count);

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

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

Console.Write("Текущее содержимое: "); for(int i=0; i < al.Count; i++)

Console.Write (al[i] + " ");

Console.WriteLine("\n");

Console.WriteLine("Удалить 2 элемента");

// Удалить элементы из динамического массива, al.Remove('F'); al.Remove('A');

Console.WriteLine("Количество элементов: " + al.Count);

// Отобразить содержимое динамического массива, используя цикл foreach. Console.Write("Содержимое: "); foreach(char с in al)

Console.Write(с + " ");

Console.WriteLine("\n");

Console.WriteLine("Добавить еще 20 элементов");

// Добавить количество элементов, достаточное для // принудительного расширения массива, for (int i=0; i < 20; i++) al.Add((char)('a' + i));

Console.WriteLine("Текущая емкость: " + al.Capacity);

Перейти на страницу:

Похожие книги