ArrayList
This VB.NET collection is a dynamic array—it resizes to fit new elements. An array type offers superior performance. But the ArrayList
is sized automatically by built-in code.
ArrayList
has many functions that help manage a linear collection. We add objects, we remove and insert things, and we count the number of elements.
First the Add()
subroutine is often used. It appends the object argument to the end of the internal ArrayList
data structure. This program adds three elements to the ArrayList
.
out
-of-memory situations.Module Module1 Sub Main() ' Create a new ArrayList, and add 3 strings to it. Dim list As New ArrayList list.Add("One") list.Add("Two") list.Add("Three") Console.WriteLine(list.Count) End Sub End Module3
It is possible and often useful to receive an ArrayList
as a parameter to a Sub
. We can specify it as a parameter with "As ArrayList." The syntax is simple.
ArrayList
instance, with any elements in its internal storage.Module Module1 Sub Main() ' Create an ArrayList and add two elements to it. Dim list As New ArrayList list.Add(5) list.Add(7) ' Use ArrayList as an argument to the method. Example(list) End Sub ''' <summary> ''' Receives ArrayList as argument. ''' </summary> Private Sub Example(ByVal list As ArrayList) For Each num As Integer In list Console.WriteLine(num) Next End Sub End Module5 7
AddRange
It is possible to add a range of elements from one ArrayList
onto the end of another ArrayList
. To do this, please consider using the AddRange
Sub
.
AddRange
receives one argument—an ArrayList
that contains elements you want to add.AddRange
Sub
.Module Module1 Sub Main() ' Create an ArrayList and add two elements. Dim list1 As New ArrayList list1.Add(5) list1.Add(7) ' Create a separate ArrayList. Dim list2 As New ArrayList list2.Add(10) list2.Add(13) ' Add this ArrayList to the other one. list1.AddRange(list2) ' Loop over the elements. For Each num As Integer In list1 Console.WriteLine(num) Next End Sub End Module5 7 10 13
Count
, ClearOften with ArrayList
, you will not be sure how many elements are in the current instance. Fortunately, the ArrayList
offers the Count
property.
Count
is a property. Count
quickly returns the number of elements in the ArrayList
.Count
property will return zero elements.Module Module1 Sub Main() ' Add two elements to the ArrayList. Dim list As New ArrayList list.Add(9) list.Add(10) ' Write the Count. Console.WriteLine(list.Count) ' Clear the ArrayList. list.Clear() ' Write the Count again. Console.WriteLine(list.Count) End Sub End Module2 0
Insert
, Remove
We show how to use the Add()
, RemoveAt()
, Insert()
, and RemoveRange()
methods. We have already seen the Add()
method in the first example.
RemoveAt
method works. It receives an index argument, which corresponds to the element index you want to remove.Insert
method receives two arguments: the position you want to insert at, and the object reference itself.RemoveRange
receives the index you want to start removing at, and the number of elements you want to remove.Module Module1 Sub Main() ' Create an ArrayList and add three strings to it. Dim list As New ArrayList list.Add("Dot") list.Add("Net") list.Add("Perls") ' Remove a string. list.RemoveAt(1) ' Insert a string. list.Insert(0, "Carrot") ' Remove a range. list.RemoveRange(0, 2) ' Display. For Each str As String In list Console.WriteLine(str) Next End Sub End ModulePerls
TryCast
In the ArrayList
, elements are not directly stored with a type. Instead they are accessed through the Object base type. To cast an Object to a more derived type, use TryCast
.
TryCast
receives 2 arguments: the element we want to cast from the ArrayList
, and the type to which we want to cast.TryCast
operator will not throw exceptions, as it uses the tester-doer pattern.Module Module1 Sub Main() ' Create a new ArrayList. Dim list As New ArrayList list.Add("man") list.Add("woman") list.Add("plant") ' Loop over the ArrayList with a For-loop. For i As Integer = 0 To list.Count - 1 ' Cast to a string. Dim str As String = TryCast(list.Item(i), String) Console.WriteLine(str) Next i End Sub End Moduleman woman plant
GetRange
Here we extract one part of an ArrayList
into another. To do this, please use the GetRange
method on the original ArrayList
instance.
GetRange
method call to a new ArrayList
variable reference.GetRange
receives the starting index from which you want to copy, and then the count of elements you want to get.Module Module1 Sub Main() ' Create new ArrayList. Dim list1 As New ArrayList list1.Add("fish") list1.Add("amphibian") list1.Add("bird") list1.Add("plant") ' Create a new ArrayList. ' ... Fill it with the range from the first one. Dim list2 As New ArrayList list2 = list1.GetRange(2, 2) ' Loop over the elements. For Each str As String In list2 Console.WriteLine(str) Next End Sub End Modulebird plant
We examined the ArrayList
type—this is a core class
in .NET. It is harder to use in VB.NET due to the casting syntax required, but older programs often need it.