List<T> Constructor (Int32)
Initializes a new instance of the List<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<T> is the number of elements that the List<T> can hold. As elements are added to a List<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<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<T>.
This constructor is an O(n) operation, where n is capacity.
The following example demonstrates the List<T>(Int32) constructor. A List<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.
using namespace System; using namespace System::Collections::Generic; void main() { List<String^>^ dinosaurs = gcnew List<String^>(4); Console::WriteLine("\nCapacity: {0}", dinosaurs->Capacity); dinosaurs->Add("Tyrannosaurus"); dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Mamenchisaurus"); dinosaurs->Add("Deinonychus"); Console::WriteLine(); for each(String^ dinosaur in dinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\nIList<String^>^ roDinosaurs = dinosaurs->AsReadOnly()"); IList<String^>^ roDinosaurs = dinosaurs->AsReadOnly(); Console::WriteLine("\nElements in the read-only IList:"); for each(String^ dinosaur in roDinosaurs) { Console::WriteLine(dinosaur); } Console::WriteLine("\ndinosaurs[2] = \"Coelophysis\""); dinosaurs[2] = "Coelophysis"; Console::WriteLine("\nElements in the read-only IList:"); for each(String^ dinosaur in roDinosaurs) { Console::WriteLine(dinosaur); } } /* This code example produces the following output: Capacity: 4 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus IList<String^>^ roDinosaurs = 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 */
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1