Первый рассматриваемый нами класс 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)