VB.NET

.NET Array Class File String Sub ArrayList Cast Console DataTable DateTime Dictionary Enum For If IndexOf Interface Lambda LINQ List Nothing Parse Process Property Regex Replace Select Sort Split StringBuilder Substring

List

List. This collection is a resizable array. It stores a variable number of elements in an expandable collection.
Unlike an array,
it changes its size as needed,
on its own.


Model

Type. The List type offers many useful methods. We add elements. We count elements. We can locate elements with IndexOf or Find. List is powerful.


Add

Add example. This Sub is often used in a loop body to add elements programmatically to the collection. We do not need to predict the final size of the List.

Of Integer:The keywords "Of Integer" mean that the List will contain only Integers. Other types, even Objects, are not allowed in it.

Argument:The argument to the Add subroutine is the value we want to add to the List. The value is added after all existing elements.

Based on:

.NET 4.5

VB.NET program that uses Add

Module Module1
    Sub Main()
	Dim list As New List(Of Integer)
	list.Add(2)
	list.Add(3)
	list.Add(5)
	list.Add(7)
    End Sub
End Module
Loop

Loops. We can loop over the elements in a List instance. The program adds three integers to the List contents, and then uses a For-Each loop construct. Finally it uses a For-loop.

Note:The expression "list.Count - 1" is used for the upper loop bounds on the For-loop. This keeps the index valid throughout.

Function:In the second loop, the Item function is invoked. This is an indexer function—it allows you to access an element at that index.

VB.NET program that uses For-Each and For, List

Module Module1
    Sub Main()
	Dim list As New List(Of Integer)
	list.Add(2)
	list.Add(3)
	list.Add(7)
	' Loop through list elements.
	Dim num As Integer
	For Each num In list
	    Console.WriteLine(num)
	Next
	' Loop through list with a for-to loop.
	Dim i As Integer
	For i = 0 To list.Count - 1
	    Console.WriteLine(list.Item(i))
	Next i
    End Sub
End Module

Output

2
3
7
2
3
7
Pound symbol

Count, Clear. The Count property returns the total number of elements in the List. The Clear function removes all the elements so that the next invocation of Count will return zero.

Here:We use the Count property and the Clear function on the List type instance.

VB.NET program that uses Count and Clear

Module Module1
    Sub Main()
	' Create a list of booleans.
	Dim list As New List(Of Boolean)
	list.Add(True)
	list.Add(False)
	list.Add(True)
	' Write the count.
	Console.WriteLine(list.Count)
	' Clear the list elements.
	list.Clear()
	' Write the count again.
	Console.WriteLine(list.Count)
    End Sub
End Module

Output

3
0
This section provides information

Initialize. Let us initialize a List. The benefit to using this syntax is that it reduces the size of your source text. It sometimes increases readability because of that.

Note:There is no important difference at the level of the intermediate language of the compiled program.

VB.NET program that initializes List instance

Module Module1
    Sub Main()
	' Create a list of three integers.
	Dim list As New List(Of Integer)(New Integer() {2, 3, 5})
	' Write the count.
	Console.WriteLine(list.Count)
    End Sub
End Module

Output

3
If

If-statement. We often need to scan or loop through the elements in the List and use logical tests on them. Perhaps we need to test each element against a specific value.

Tip:To do this, you can use a For-Each loop and then an enclosed If-statement in the VB.NET language.

VB.NET program that uses if, List elements

Module Module1
    Sub Main()
	' Create a list of three integers.
	Dim list As New List(Of Integer)(New Integer() {2, 3, 5})
	' Loop through each number in the list.
	' ... Then check it against the integer 3.
	Dim num As Integer
	For Each num In list
	    If (num = 3) Then
		Console.WriteLine("Contains 3")
	    End If
	Next
    End Sub
End Module

Output

Contains 3
Join objects together

Join. The String.Join method combines an array of strings into a single string with a specific delimiter character dividing the parts. A List can now be used with Join.

Note:The .NET 4.0 Framework provides a new String.Join overload that accepts an argument of type IEnumerable.

Join

Here:We convert a List into an array. We apply the ToArray extension and then pass as an argument this result to String.Join.

ToArray
VB.NET program that uses Join on List

Module Module1
    Sub Main()
	' Create a list of strings.
	' ... Then use the String.Join method on it.
	Dim list As New List(Of String)
	list.Add("New York")
	list.Add("Mumbai")
	list.Add("Berlin")
	list.Add("Istanbul")
	Console.WriteLine(String.Join(",", list.ToArray))
    End Sub
End Module

Output

New York,Mumbai,Berlin,Istanbul
Key: used to access value

List, keys. List and Dictionary can be used together. We can acquire a List instance of all of the keys from a Dictionary instance. Then, that List can be used just like any other List.

Dictionary:More information is available on the Dictionary generic type in the VB.NET language.

Dictionary
VB.NET that uses Keys and List

Module Module1
    Sub Main()
	' Create a dictionary of integers and boolean values.
	' ... Add two pairs to it.
	Dim dictionary As New Dictionary(Of Integer, Boolean)
	dictionary.Add(3, True)
	dictionary.Add(5, False)
	' Get the list of keys.
	Dim list As New List(Of Integer)(dictionary.Keys)
	' Loop through the list and display the keys.
	Dim num As Integer
	For Each num In list
	    Console.WriteLine(num)
	Next
    End Sub
End Module

Output

3
5
Insert: placing an element into a collection

Insert. When we use Insert, the first argument must be the desired index for the element. The second argument is the element to insert.

Index:For example, the index 1 will put the element in the second index, because the List is ordered starting at zero.

VB.NET that uses Insert method

Module Module1
    Sub Main()
	' Create a list of strings.
	Dim list As New List(Of String)
	list.Add("spaniel")
	list.Add("beagle")
	' Insert a pair into the list.
	list.Insert(1, "dalmatian")
	' Loop through the entire list.
	Dim str As String
	For Each str In list
	    Console.WriteLine(str)
	Next
    End Sub
End Module

Output

spaniel
dalmatian
beagle
Steps

GetRange. This function receives two arguments. The first is the starting index. And the second argument is the number of elements (count) you wish to receive.

VB.NET that uses GetRange method

Module Module1
    Sub Main()
	' Create a new list of strings and add five strings to it.
	Dim list As New List(Of String)(New String() {"nile", _
						      "amazon", _
						      "yangtze", _
						      "mississippi", _
						      "yellow"})
	' Loop through the strings.
	Dim str As String
	For Each str In list.GetRange(1, 2)
	    Console.WriteLine(str)
	Next
    End Sub
End Module

Output

amazon
yangtze
Find

Find. We can also use the Find,
FindIndex,
FindLast
and FindLastIndex functions. These provide a way for us to declaratively search a List. This reduces complexity.

Find
Concept

BinarySearch. In a binary search, a value is located in a sorted list by testing positions in the list. The search then "hones" in on the value. This can optimize performance.

BinarySearch
IndexOf

IndexOf. This method locates a value within a List. It returns the index of a match was found. It returns -1 if no matching value exists in the List.

VB.NET that uses IndexOf

Module Module1
    Sub Main()
	Dim sizes As List(Of Integer) = New List(Of Integer)
	sizes.Add(10)
	sizes.Add(20)
	sizes.Add(30)

	' The value 20 occurs at the index 1.
	Dim index20 As Integer = sizes.IndexOf(20)
	Console.WriteLine(index20)

	' The value 100 does not occur, so IndexOf returns -1.
	Dim index100 As Integer = sizes.IndexOf(100)
	If index100 = -1 Then
	    Console.WriteLine("Not found")
	End If
    End Sub
End Module

Output

1
Not found
Duplicates

Duplicates. Unlike a Dictionary, a List can contain duplicate elements. This often can be a problem. We can remove these duplicates in many ways.

Remove Duplicates
Convert

Convert. Often we must use custom methods to convert and modify List collections. We can convert a List into another type, like a Dictionary.

Convert Dictionary, List
The VB.NET programming language

A summary. The List type is a generic, constructed type. It has some performance advantages over other structures. In many programs, the List type is useful.