Классы коллекций в .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
