SortedList.CopyTo(Array,Int32)方法用于从数组中指定的索引处开始,将SortedList元素复制到一维Array对象。
句法:
public virtual void CopyTo (Array array, int arrayIndex);
参数:
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.
例外情况:
- ArgumentNullException:如果数组为null。
- ArgumentOutOfRangeException:如果arrayindex小于零。
- ArgumentException:如果数组是多维的,或者源SortedList对象中的元素数大于从arrayIndex到目标数组末尾的可用空间。
- InvalidCastException:如果源SortedList的类型不能自动转换为目标数组的类型。
下面的程序说明了上面讨论的方法的使用:
范例1:
// 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);
}
}
}
输出:
1-->C#
2-->Java
3-->DSA
4-->Python
5-->C
范例2:
// 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);
}
}
}
运行时错误:
Unhandled Exception:
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: arrayIndex
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.sortedlist.copyto?view=netframework-4.7.2