C# | Copying the SortedList elements to an Array Object (original) (raw)
Last Updated : 01 Feb, 2019
SortedList.CopyTo(Array, Int32) Method is used to copy SortedList elements to a one-dimensional Array object, starting at the specified index in the array.Syntax:
public virtual void CopyTo (Array array, int arrayIndex);
Parameters:
array: It is the one-dimensional Array object that is the destination of the DictionaryEntry objects copied from SortedList. The Array must have zero-based indexing.arrayindex: It is the zero-based index in array at which copying begins.
Exceptions:
- ArgumentNullException: If the array is null.
- ArgumentOutOfRangeException: If the arrayindex is less than zero.
- ArgumentException: If the array is multidimensional or the number of elements in the source SortedList object is greater than the available space from arrayIndex to the end of the destination array.
- InvalidCastException: If the type of the source SortedList cannot be cast automatically to the type of the destination array.
Below programs illustrate the use of above-discussed method:Example 1:
CSharp `
// C# code to copy the SortedList elements // to a 1-D Array object, starting at the // specified index in the array using System; using System.Collections;
class Geeks {
// Main Method
public static void Main(String[] args)
{
// Creating a SortedList of integers
SortedList mylist = new SortedList();
// Adding elements to SortedList
mylist.Add("1", "C#");
mylist.Add("2", "Java");
mylist.Add("3", "DSA");
mylist.Add("4", "Python");
mylist.Add("5", "C");
// creating a 1-D array
DictionaryEntry[] myArr = new DictionaryEntry[mylist.Count];
// Copying SortedList to Array
// instance at the specified index
mylist.CopyTo(myArr, 0);
// Displaying elements in myArr
for (int i = 0; i < myArr.Length; i++) {
Console.WriteLine(myArr[i].Key + "-->" + myArr[i].Value);
}
}
}
`
Output:
1-->C# 2-->Java 3-->DSA 4-->Python 5-->C
Example 2:
CSharp `
// C# code to copy the SortedList elements // to a 1-D Array object, starting at the // specified index in the array using System; using System.Collections;
class Geeks {
// Main Method
public static void Main(String[] args)
{
// Creating a SortedList of integers
SortedList mylist = new SortedList();
// Adding elements to SortedList
mylist.Add("1st", "Ram");
mylist.Add("2nd", "Shyam");
mylist.Add("3rd", "Rohit");
mylist.Add("4th", "Manish");
mylist.Add("5th", "Vikas");
// creating a 1-D array
DictionaryEntry[] myArr = new DictionaryEntry[mylist.Count];
// Copying SortedList to Array
// instance at the specified index
// This will raise "ArgumentOutOfRangeException"
// as index is less than 0
mylist.CopyTo(myArr, -2);
// Displaying elements in myArr
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
Reference: