C# | Copying the Hashtable elements to an Array Instance
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:
- 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
using System;
using System.Collections;
class GFG {
public static void Main()
{
Hashtable myhash = new Hashtable();
myhash.Add( "A" , "Apple" );
myhash.Add( "B" , "Banana" );
myhash.Add( "C" , "Cat" );
myhash.Add( "D" , "Dog" );
myhash.Add( "E" , "Elephant" );
myhash.Add( "F" , "Fish" );
DictionaryEntry[] myArr = new DictionaryEntry[myhash.Count];
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
using System;
using System.Collections;
class GFG {
public static void Main()
{
Hashtable myhash = new Hashtable();
myhash.Add( "A" , "Apple" );
myhash.Add( "B" , "Banana" );
myhash.Add( "C" , "Cat" );
myhash.Add( "D" , "Dog" );
myhash.Add( "E" , "Elephant" );
myhash.Add( "F" , "Fish" );
DictionaryEntry[] myArr = new DictionaryEntry[myhash.Count];
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:
Share your thoughts in the comments
Please Login to comment...