С другой стороны, если требуется сократить размер базового массива коллекции типа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);