C# | How to copy the entire ArrayList to a one-dimensional Array
Last Updated :
01 Feb, 2019
Improve
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:
CSharp
Output:
CSharp
Runtime Error:
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:
- ArgumentNullException: If the array is null.
- ArgumentException: If the array is multidimensional OR the number of elements in the source ArrayList is greater than the number of elements that the destination array can contain.
- InvalidCastException: If the type of the source ArrayList cannot be cast automatically to the type of the destination array.
// 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);
}
}
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 DBMSExample 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);
}
}
Unhandled Exception: System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds Parameter name: destinationArrayReference: