Open In App

C# | Copying the Collection<T> elements to an array

Collection<T>.CopyTo(T[], Int32) method is used to copy the entire Collection<T> to a compatible one-dimensional Array, starting at the specified index of the target array.

Syntax:



public void CopyTo (T[] array, int index);

Parameters:

array : The one-dimensional Array that is the destination of the elements copied from Collection<T>. The Array must have zero-based indexing.



index : The zero-based index in array at which copying begins.

Exceptions:

Below given are some examples to understand the implementation in a better way:

Example 1:




// C# code to copy the entire Collection
// to a compatible one-dimensional Array,
// starting at the specified index of
// the target array
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
        // Creating a collection of strings
        Collection<string> myColl = new Collection<string>();
  
        myColl.Add("A");
        myColl.Add("B");
        myColl.Add("C");
        myColl.Add("D");
        myColl.Add("E");
  
        // Creating a string array
        string[] myArr = new string[myColl.Count];
  
        // Copying the entire Collection to a
        // compatible one-dimensional Array,
        // starting at the specified index
        // of the target array
        myColl.CopyTo(myArr, 0);
  
        // Displaying the elements in myArr
        foreach(string str in myArr)
        {
            Console.WriteLine(str);
        }
    }
}

Output:

A
B
C
D
E

Example 2:




// C# code to copy the entire Collection
// to a compatible one-dimensional Array,
// starting at the specified index of
// the target array
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
        // Creating a collection of ints
        Collection<int> myColl = new Collection<int>();
  
        myColl.Add(2);
        myColl.Add(3);
        myColl.Add(4);
        myColl.Add(5);
  
        // Creating an integer array
        int[] myArr = new int[myColl.Count];
  
        // Copying the entire Collection to a
        // compatible one-dimensional Array,
        // starting at the specified index
        // of the target array
        // This should raise "ArgumentOutOfRangeException"
        // as index is less than 0
        myColl.CopyTo(myArr, -5);
  
        // Displaying the elements in myArr
        foreach(int i in myArr)
        {
            Console.WriteLine(i);
        }
    }
}

Runtime Error:

Unhandled Exception:
System.ArgumentOutOfRangeException: Value has to be >= 0.
Parameter name: destinationIndex

Note:

Reference:


Article Tags :
C#