C# | Copiar toda la ArrayList a 1-D Array comenzando en el índice especificado – Part 1

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *