C# | Copying the Hashtable elements to an Array Instance (original) (raw)

Last Updated : 22 Jun, 2021

Hashtable.CopyTo(Array, Int32) Method is used to copy the elements of a Hashtable to a one-dimensional Array instance at the specified index.
Syntax:

public virtual void CopyTo (Array array, int arrayIndex);

Parameters:

array : The one-dimensional Array that is the destination of the DictionaryEntry objects copied from Hashtable. The Array must have zero-based indexing.
index : The zero-based index in array at which copying begins.

Exceptions:

Below programs illustrate the use of Hashtable.CopyTo(Array, Int32) Method:
Example 1:

CSharp `

// C# code to copy the Hashtable // elements to a one-dimensional Array // instance at the specified index. using System; using System.Collections;

class GFG {

// Driver code
public static void Main()
{

    // Creating a Hashtable named myhash
    Hashtable myhash = new Hashtable();

    // Adding key/value pairs in myhash
    myhash.Add("A", "Apple");
    myhash.Add("B", "Banana");
    myhash.Add("C", "Cat");
    myhash.Add("D", "Dog");
    myhash.Add("E", "Elephant");
    myhash.Add("F", "Fish");

    // Creating a one-dimensional Array named myArr
    DictionaryEntry[] myArr = new DictionaryEntry[myhash.Count];

    // copying the Hashtable entries
    // to a one-dimensional Array instance
    // at the specified index
    myhash.CopyTo(myArr, 0);

    for (int i = 0; i < myArr.Length; i++)
        Console.WriteLine(myArr[i].Key + " --> "
                          + myArr[i].Value);
}

}

`

Output:

B --> Banana C --> Cat A --> Apple F --> Fish D --> Dog E --> Elephant

Example 2:

CSharp `

// C# code to copy the Hashtable // elements to a one-dimensional Array // instance at the specified index. using System; using System.Collections;

class GFG {

// Driver code
public static void Main()
{

    // Creating a Hashtable named myhash
    Hashtable myhash = new Hashtable();

    // Adding key/value pairs in myhash
    myhash.Add("A", "Apple");
    myhash.Add("B", "Banana");
    myhash.Add("C", "Cat");
    myhash.Add("D", "Dog");
    myhash.Add("E", "Elephant");
    myhash.Add("F", "Fish");

    // Creating a one-dimensional Array named myArr
    DictionaryEntry[] myArr = new DictionaryEntry[myhash.Count];

    // copying the HybridDictionary entries
    // to a one-dimensional Array instance
    // at the specified index
    // This should raise "ArgumentOutOfRangeException"
    // as index is less than 0
    myhash.CopyTo(myArr, -2);

    for (int i = 0; i < myArr.Length; i++)
        Console.WriteLine(myArr[i].Key + " --> "
                          + myArr[i].Value);
}

}

`

Runtime Error:

Unhandled Exception:
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: arrayIndex

Note:

Reference: