Класс List(Of T) представляет простейший список однотипных объектов.
Рассмотрим основные его методы:
Add(item As T): добавляет в список новый элемент
AddRange(collection As ICollection): добавляет в список коллекцию или массив
BinarySearch(item As T) As Integer: методом бинарного поиска ищет в списке элемент, и если такой элемент найден, то метод возвращает индекс данного элемента в списке. При этом список должен быть отсортирован.
IndexOf(item As T) As Integer: возвращает индекс первого вхождения элемента в списке
Insert(index As Integer, item As T): вставляет элемент item в списке на позицию index
Remove(item As T) As Boolean: удаляет элемент item из списка, и если удаление прошло успешно, то возвращает True
RemoveAt(index As Integer): удаляет элемент по индексу index
Sort(): сортирует список
Теперь рассмотрим использование класса List(Of T):
Module Module1 Sub Main() Dim nums As New List(Of Integer)() From {1, 2, 3, 45} nums.Add(6) 'добавление элемента nums.AddRange(New Integer() {7, 8, 9}) nums.Insert(0, 666) 'вставляем на первое место в списке число 666 nums.RemoveAt(1) 'удаляем второй элемент For Each i As Integer In nums Console.WriteLine(i) Next Dim people As New List(Of Person)(3) people.Add(New Person() With {.Name = "Tom"}) people.Add(New Person() With {.Name = "Bill"}) For Each p As Person In people Console.WriteLine(p.Name) Next Console.ReadLine() End Sub Class Person Public Property Name() As String End Class End Module
В данном примере мы создаем два списка: один для объектов типа Integer
, а другой - для объектов Person
.
В первом случае при создании списка также выполняется начальная инициализация: Dim nums As New List(Of Integer)() From {1, 2, 3, 45}
Во втором случае для создания списка применяется другой конструктор, в который передается начальная емкость списка:
Dim people As New List(Of Person)(3)
. Указывая начальную емкость списка (capacity), мы тем самым можем повысить производительность
и уменьшить издержки на выделение памяти при добавлении элементов. В качестве альтернативы начальную емкость можно установить с помощью свойства
Capacity
, которое имеется у класса List.