List(Of T) Constructor (Int32)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Initializes a new instance of the List(Of T) class that is empty and has the specified initial capacity.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- capacity
- Type: System.Int32
The number of elements that the new list can initially store.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | capacity is less than 0. |
The capacity of a List(Of T) is the number of elements that the List(Of T) can hold. As elements are added to a List(Of T), the capacity is automatically increased as required by reallocating the internal array.
If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number of resizing operations while adding elements to the List(Of T).
The capacity can be decreased by calling the TrimExcess method or by setting the Capacity property explicitly. Decreasing the capacity reallocates memory and copies all the elements in the List(Of T).
This constructor is an O(n) operation, where n is capacity.
The following code example demonstrates the List(Of T)(Int32) constructor. A List(Of T) of strings with a capacity of 4 is created, because the ultimate size of the list is known to be exactly 4. The list is populated with four strings, and a read-only copy is created by using the AsReadOnly method.
Imports System.Collections.Generic Public Class Example Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) Dim dinosaurs As New List(Of String)(4) outputBlock.Text &= String.Format(vbLf & "Capacity: {0}", dinosaurs.Capacity) & vbCrLf dinosaurs.Add("Tyrannosaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Deinonychus") outputBlock.Text &= vbCrLf For Each dinosaur As String In dinosaurs outputBlock.Text &= dinosaur & vbCrLf Next outputBlock.Text &= vbLf & _ "Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly" & vbCrLf Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly outputBlock.Text &= vbLf & "Elements in the read-only IList:" & vbCrLf For Each dinosaur As String In roDinosaurs outputBlock.Text &= dinosaur & vbCrLf Next outputBlock.Text &= vbLf & "dinosaurs(2) = ""Coelophysis""" & vbCrLf dinosaurs(2) = "Coelophysis" outputBlock.Text &= vbLf & "Elements in the read-only IList:" & vbCrLf For Each dinosaur As String In roDinosaurs outputBlock.Text &= dinosaur & vbCrLf Next End Sub End Class ' This code example produces the following output: ' 'Capacity: 4 ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus ' 'Dim roDinosaurs As IList(Of String) = dinosaurs.AsReadOnly ' 'Elements in the read-only IList: 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus ' 'dinosaurs(2) = "Coelophysis" ' 'Elements in the read-only IList: 'Tyrannosaurus 'Amargasaurus 'Coelophysis 'Deinonychus