El método ArrayList.CopyTo se utiliza para copiar todo el ArrayList en un Array unidimensional compatible, empezando por el principio del array de destino.
Sintaxis:
public virtual void CopyTo (Array array);
Aquí, 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.
Excepciones:
- ArgumentNullException: si la array es nula.
- 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 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"); myList.Add("E"); myList.Add("F"); myList.Add("G"); myList.Add("H"); // Creates and initializes the // one-dimensional target Array. String[] arr = new String[9]; arr[0] = "C"; arr[1] = "C++"; arr[2] = "Java"; arr[3] = "Python"; arr[4] = "C#"; arr[5] = "HTML"; arr[6] = "CSS"; arr[7] = "PHP"; arr[8] = "DBMS"; Console.WriteLine("Before CopyTo Method: "); Console.WriteLine("\nArrayList Contains: "); // printing ArrayList elements foreach(Object obj in myList) Console.WriteLine("{0}", obj); Console.WriteLine("\nString Array Contains: "); // printing String elements foreach(Object obj1 in arr) Console.WriteLine("{0}", obj1); Console.WriteLine("After CopyTo Method: "); // using CopyTo Method to copy // the entire source ArrayList // to the target Array starting // at index 0 myList.CopyTo(arr); Console.WriteLine("\nArrayList Contains: "); // printing ArrayList elements foreach(Object obj in myList) Console.WriteLine("{0}", obj); Console.WriteLine("\nString Array Contains: "); // printing String elements foreach(Object obj1 in arr) Console.WriteLine("{0}", obj1); } }
Producción:
Before CopyTo Method: ArrayList Contains: A B C D E F G H String Array Contains: C C++ Java Python C# HTML CSS PHP DBMS After CopyTo Method: ArrayList Contains: A B C D E F G H String Array Contains: A B C D E F G H DBMS
Ejemplo 2:
// C# code to illustrate the // ArrayList.CopyTo 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("HTML"); myList.Add("CSS"); myList.Add("PHP"); myList.Add("DBMS"); // 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 CopyTo Method: "); Console.WriteLine("\nArrayList Contains: "); // printing ArrayList elements foreach(Object obj in myList) Console.WriteLine("{0}", obj); Console.WriteLine("\nString Array Contains: "); // printing String elements foreach(Object obj1 in arr) Console.WriteLine("{0}", obj1); Console.WriteLine("After CopyTo Method: "); // using CopyTo 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); Console.WriteLine("\nArrayList Contains: "); // printing ArrayList elements foreach(Object obj in myList) Console.WriteLine("{0}", obj); Console.WriteLine("\nString Array Contains: "); // printing String elements foreach(Object obj1 in arr) Console.WriteLine("{0}", obj1); } }
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