El método ArrayList.CopyTo(Array, Int32) se utiliza para copiar todo el ArrayList en un Array unidimensional compatible, comenzando en el índice especificado del conjunto de destino.
Sintaxis:
public virtual void CopyTo (Array array, int arrayIndex);
Parámetros:
array: Es el Array unidimensional que es el destino de los elementos copiados de ArrayList. El Array debe tener una indexación basada en cero.
arrayIndex: Es el índice basado en cero en la array en el que comienza la copia.
Excepciones:
- ArgumentNullException: si la array es nula.
- ArgumentOutOfRangeException: si arrayIndex es menor que cero.
- ArgumentException: si la array es multidimensional O la cantidad de elementos en la ArrayList de origen es mayor que la cantidad de elementos que puede contener la array de destino.
- InvalidCastException: si el tipo de ArrayList de origen no se puede convertir automáticamente al tipo de array de destino .
Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 1:
// C# code to illustrate the // ArrayList.CopyTo(Array, Int32) // Method using System; using System.Collections; class GFG { // Driver code public static void Main() { // Creating an ArrayList ArrayList myList = new ArrayList(); // Adding elements to ArrayList myList.Add("A"); myList.Add("B"); myList.Add("C"); myList.Add("D"); // Creates and initializes the // one-dimensional target Array. String[] arr = new String[6]; // adding elements to Array arr[0] = "HTML"; arr[1] = "PHP"; arr[2] = "Java"; arr[3] = "Python"; arr[4] = "C#"; arr[5] = "OS"; Console.WriteLine("Before Method: "); Console.WriteLine("\nArrayList Contains: "); // Displaying the elements in myList for (int i = 0; i < myList.Count; i++) { Console.WriteLine("myList[{0}] : {1}", i, myList[i]); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } Console.WriteLine("After Method: "); // Copying the entire source ArrayList // to the target Array starting at // index 2. myList.CopyTo(arr, 2); Console.WriteLine("\nArrayList Contains: "); // Displaying the elements in myList for (int i = 0; i < myList.Count; i++) { Console.WriteLine("myList[{0}] : {1}", i, myList[i]); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } } }
Producción:
Before Method: ArrayList Contains: myList[0] : A myList[1] : B myList[2] : C myList[3] : D Array Contains: arr[0] : HTML arr[1] : PHP arr[2] : Java arr[3] : Python arr[4] : C# arr[5] : OS After Method: ArrayList Contains: myList[0] : A myList[1] : B myList[2] : C myList[3] : D Array Contains: arr[0] : HTML arr[1] : PHP arr[2] : A arr[3] : B arr[4] : C arr[5] : D
Ejemplo 2:
// C# code to illustrate the // ArrayList.CopyTo(Array, Int32) // Method using System; using System.Collections; class GFG { // Driver code public static void Main() { // Creating an ArrayList ArrayList myList = new ArrayList(); // Adding elements to ArrayList myList.Add("A"); myList.Add("B"); myList.Add("C"); myList.Add("D"); // Creates and initializes the // one-dimensional target Array. // Here array size is only 2 i.e // it can hold only 3 elements. String[] arr = new String[2]; Console.WriteLine("Before Method: "); Console.WriteLine("\nArrayList Contains: "); // Displaying the elements in myList for (int i = 0; i < myList.Count; i++) { Console.WriteLine("myList[{0}] : {1}", i, myList[i]); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } Console.WriteLine("After Method: "); // using Method but It will give // Runtime Error as number of elements // in the source ArrayList is greater // than the number of elements that // the destination array can contain myList.CopyTo(arr, 2); Console.WriteLine("\nArrayList Contains: "); // Displaying the elements in myList for (int i = 0; i < myList.Count; i++) { Console.WriteLine("myList[{0}] : {1}", i, myList[i]); } Console.WriteLine("\nArray Contains: "); // Displaying the elements in arr for (int i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] : {1}", i, arr[i]); } } }
Error de tiempo de ejecución:
Excepción no controlada:
System.ArgumentException: la array de destino no era lo suficientemente larga. Compruebe destIndex y longitud, y los límites inferiores de la array
Nombre del parámetro: DestinationArray
Referencia:
Publicación traducida automáticamente
Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA