C# | Copying the Hashtable elements to an Array Instance - GeeksforGeeks

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:  
ArgumentNullException : If the array is null.
ArgumentOutOfRangeException : If the index is less than zero.
InvalidCastException : If the type of the source Hashtable cannot be cast automatically to the type of the destination array.
ArgumentException : If array is multidimensional OR the number of elements in the source Hashtable is greater than the available space from arrayIndex to the end of the destination array.
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:  
The elements are copied to the Array in the same order in which the enumerator iterates through the Hashtable.
To copy only the keys in the Hashtable, use Hashtable.Keys.CopyTo.
To copy only the values in the Hashtable, use Hashtable.Values.CopyTo.
This method is an O(n) operation, where n is Count.
Reference:  
https://docs.microsoft.com/en-us/dotnet/api/system.collections.hashtable.copyto?view=netframework-4.7.2
 
anikakapoor
CSharp-Collections-Hashtable
CSharp-Collections-Namespace
CSharp-method
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Extension Method in C#
HashSet in C# with Examples
C# | Inheritance
Partial Classes in C#
C# | Generics - Introduction
Top 50 C# Interview Questions & Answers
Switch Statement in C#
Convert String to Character Array in C#
C# | How to insert an element in an Array?
Linked List Implementation in C#