Первый рассматриваемый нами класс ArrayList представляет необобщенную коллекцию объектов. И если стоит задача, создать коллекцию с разнотипными
данными, то данный класс как раз для этого подходит. Рассмотрим пример использования ArrayList:
Module Module1
Sub Main()
'необобщенная коллекция ArrayList
Dim objlist As New ArrayList()
objlist.Add(2.3) 'добавляем в список элемент Double
objlist.Add(55) 'добавляем в список объект типа Integer
objlist.AddRange(New String() {"Hello", "world"}) 'добавляем в список массив строк
For Each item As Object In objlist
Console.WriteLine(item)
Next
'удаление первого элемента
objlist.RemoveAt(0)
'переворачиваем список
objlist.Reverse()
'получаем элемент по индексу
Console.WriteLine(objlist(0))
'перебор значений
For i As Integer = 0 To objlist.Count - 1
Console.WriteLine(objlist(i))
Next
Console.ReadLine()
End Sub
End Module
Здесь вначале создается объект коллекции через конструктор как объект любого другого класса: Dim objlist As New ArrayList().
При необходимости можно было бы так же инициализировать коллекцию начальными данными, например, Dim objlist As New ArrayList() From{1, 2, 5, "string", 7.7}
Затем последовательно добавляем различные значения. Данный класс коллекции, как и большинство других коллекций, имеет два способа добавления: одиночного объекта через метод Add и набора объектов - массива или другой коллекции через метод AddRange
Так как класс ArrayList применяет интерфейс IEnumerable, то мы можем перебрать все хранящиеся в списке объекты через цикл For Each.
И поскольку данная коллекция хранит разнородные объекты, а не только числа или строки, то в качестве типа перебираемых объектов выбран тип Object:
For Each item As Object In objlist
Класс ArrayList, как и большинство коллекций, реализует удаление с помощью методов Remove/RemoveAt. В данном примере мы удаляем первый элемент, передавая в метод RemoveAt индекс удаляемого элемента.
В конце программы опять же выводим элементы коллекции на экран только уже через обычный цикл For. В данном случае с перебором коллекций дело обстоит
также, как и с массивами. А число элементов коллекции мы можем получить через свойство Count
С помощью индексатора мы можем получить по индексу элемент коллекции так же, как и в массивах: Dim firstObj As Object= objlist(0)