C# | How to copy the entire ArrayList to a onedimensional Array (original) (raw)

Last Updated : 01 Feb, 2019

ArrayList.CopyTo Method is used to copy the entire ArrayList to a compatible one-dimensional Array, starting at the beginning of the target array.Syntax:

public virtual void CopyTo (Array array);

Here, array is the one-dimensional Array which is the destination of the elements copied from ArrayList. The Array must have zero-based indexing.Exceptions:

Below programs illustrate the use of above-discussed method:Example 1:

CSharp `

// 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);
}

}

`

Output:

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

Example 2:

CSharp `

// 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);
}

}

`

Runtime Error:

Unhandled Exception: System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds Parameter name: destinationArray

Reference: