Классы коллекций в .NET Framework. ArrayList.
Таблица 4.3. Важнейшие члены класса ArrayList.
Имя | Описание |
---|---|
CopyTo | Копирует объект ArrayList (полностью или частично) в одномерный массив начиная с заданного индекса массива-приемника |
Contains | Проверяет, присутствует ли в объекте ArrayList заданный элемент |
Clear | Удаляет все элементы из объекта ArrayList |
Capacity | Получает или задает максимальное количество элементов, на которое рассчитан объект ArrayList. Конечно, вместимость массива изменяется по мере добавления новых элементов, но по соображениям эффективности вместимость наращивается большими "порциями" |
BinarySearch | Выполняет бинарный поиск заданного элемента в отсортированном динамическом массиве или в его части |
AddRange | Позволяет добавить содержимое другого массива (динамического или обычного) в текущий динамический массив. В сочетании с методом InsertRange позволяет быстро объединять массивы с использованием Arraylist в качестве вспомогательного класса |
Add | Добавляет новый объект в конец динамического массива |
Count | Возвращает количество элементов, фактически хранящихся в массиве |
GetRange | Возвращает другой объект ArrayList, содержащий последовательность смежных элементов текущего объекта |
IndexOf | Возвращает индекс первого вхождения заданного элемента в динамический массив. Следует помнить, что индексация в классе ArrayList (как и в обычных массивах) начинается с нуля |
Insert | Вставляет элемент в заданную позицию объекта ArrayList |
InsertRange | Вставляет элементы коллекции в объект ArrayList начиная с заданной позиции |
Item | Получает или задает значение элемента, находящегося в заданной позиции. Является свойством по умолчанию для класса ArrayList |
LastlndexOf | Возвращает индекс последнего вхождения заданного элемента в динамический массив (индексация начинается с нуля) |
Length | Возвращает количество элементов в динамическом массиве |
Readonly | Возвращает новый объект ArrayList, доступный только для чтения (проверка возможности записи в динамический массив осуществляется методом IsReadOnly) |
Remove | Удаляет из массива первое вхождение заданного элемента |
RemoveAt | Удаляет элемент, находящийся в заданной позиции |
RemoveRange | Удаляет последовательность смежных элементов |
RepeatRange | Возвращает объект ArrayList, содержащий заданное количество дубликатов одного элемента |
Reverse | Переставляет элементы в объекте ArrayList в противоположном порядке (во всем массиве или в его части) |
SetRange | Копирует элементы коллекции поверх интервала элементов ArrayList |
Sort | Сортирует элементы в объекте ArrayList (во всем массиве или в его части) |
ToArray | Копирует элементы из объекта ArrayList в массив |
TrimToSize | Используется после завершения операций с объектом ArrayList; вместимость динамического массива уменьшается до фактического количества элементов, хранящихся в нем в настоящий момент (разумеется, позднее массив снова может увеличиться) |
Среди свойств класса ArrayList наибольший интерес представляет свойство Item, которое представляет элемент с заданным индексом. Пример:
Consolе.WriteLinediiyList.Item(1))
Свойство Item является свойством по умолчанию класса ArrayList. Это означает, что при использовании его имя может не указываться, Например, приведенная выше команда эквивалентна следующей команде:
Console. WriteLine(myList(1))
В разделе "Свойства" настоящей главы вы узнаете, чем отличаются свойства по умолчанию в VB.NET и прежних версиях VB.
В следующем коротком примере массив ArrayList используется для ввода и сохранения неизвестного количества строк. При этом удается обойтись без команды ReDim Preserve, необходимой при работе с обычными массивами.
Option Strict On Module Modulel Sub Main() Dim myList As New ArrayList() Dim theData As String Console.Write("Please enter each item and hit Enter key,"_ & "enter ZZZ when done:") theData =Console.ReadLine() Do Until theData ="ZZZ" myList.Add(theData) Console.WriteC'Please enter each item and hit Enter,"_ & "enter ZZZ when done:") theData =Console.ReadLine() Loop Console.WriteLine("You entered "SmyList.Count() & "ITEMS.") Console.ReadLine() End Sub End Module