List<T>.CopyTo Method (T[], Int32)
Copies the entire List<T> to a compatible one-dimensional array, starting at the specified index of the target array.
Namespace: System.Collections.Generic
Assembly: mscorlib (in mscorlib.dll)
Parameters
- array
- Type: T[]
The one-dimensional Array that is the destination of the elements copied from List<T>. The Array must have zero-based indexing.
- arrayIndex
- Type: System.Int32
The zero-based index in array at which copying begins.
Implements
ICollection<T>.CopyTo(T[], Int32)| Exception | Condition |
|---|---|
| ArgumentNullException | array is null. |
| ArgumentOutOfRangeException | arrayIndex is less than 0. |
| ArgumentException | The number of elements in the source List<T> is greater than the available space from arrayIndex to the end of the destination array. |
This method uses Array.Copy to copy the elements.
The elements are copied to the Array in the same order in which the enumerator iterates through the List<T>.
This method is an O(n) operation, where n is Count.
The following code example demonstrates all three overloads of the CopyTo method. A List<T> of strings is created and populated with 5 strings. An empty string array of 15 elements is created, and the CopyTo(T[]) method overload is used to copy all the elements of the list to the array beginning at the first element of the array. The CopyTo(T[], Int32) method overload is used to copy all the elements of the list to the array beginning at array index 6 (leaving index 5 empty). Finally, the CopyTo(Int32, T[], Int32, Int32) method overload is used to copy 3 elements from the list, beginning with index 2, to the array beginning at array index 12 (leaving index 11 empty). The contents of the array are then displayed.
using System; using System.Collections.Generic; public class Example { public static void Main() { List<string> dinosaurs = new List<string>(); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Brachiosaurus"); dinosaurs.Add("Compsognathus"); Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } // Declare an array with 15 elements. string[] array = new string[15]; dinosaurs.CopyTo(array); dinosaurs.CopyTo(array, 6); dinosaurs.CopyTo(2, array, 12, 3); Console.WriteLine("\nContents of the array:"); foreach(string dinosaur in array) { Console.WriteLine(dinosaur); } } } /* This code example produces the following output: Tyrannosaurus Amargasaurus Mamenchisaurus Brachiosaurus Compsognathus Contents of the array: Tyrannosaurus Amargasaurus Mamenchisaurus Brachiosaurus Compsognathus Tyrannosaurus Amargasaurus Mamenchisaurus Brachiosaurus Compsognathus Mamenchisaurus Brachiosaurus Compsognathus */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.