StringCollection类是.NET Framework类库的新添加,它表示字符串的集合。 StringCollection类在System.Collections.Specialized命名空间中定义。
StringCollection.CopyTo(String [],Int32)方法用于将整个StringCollection值复制到从目标数组的指定索引处开始的一维字符串数组。
句法:
public void CopyTo (string[] array, int index);
参数:
- array:这是一维字符串数组,是从StringCollection复制的元素的目的地。数组必须具有从零开始的索引。
- index:它是数组中从零开始的索引,从此处开始复制。
例外情况:
- ArgumentNullException:如果数组为null。
- ArgumentOutOfRangeException:如果索引小于零。
- InvalidCastException:如果无法将源StringCollection的类型强制转换为目标数组的类型。
- ArgumentException:如果数组是多维数组,或者源StringCollection中的元素数大于从索引到目标数组末尾的可用空间。
笔记:
- 指定的数组必须是兼容类型。
- 此方法是O(n)运算,其中n是Count。
下面给出了一些示例,以更好地理解实现:
范例1:
// C# code to copy StringCollection to array,
// starting at the specified index of
// the target array
using System;
using System.Collections;
using System.Collections.Specialized;
class GFG {
// Driver code
public static void Main()
{
// creating a StringCollection named myCol
StringCollection myCol = new StringCollection();
// creating a string array named myArr1
String[] myArr1 = new String[] { "A", "B", "C", "D", "E" };
// Copying the elements of a string
// array to the end of the StringCollection.
myCol.AddRange(myArr1);
// creating a String array named myArr2
String[] myArr2 = new String[myCol.Count];
// Copying StringCollection to array myArr2
// starting from index 0
myCol.CopyTo(myArr2, 0);
// Displaying elements in array myArr2
for (int i = 0; i < myArr2.Length; i++) {
Console.WriteLine(myArr2[i]);
}
}
}
输出:
A
B
C
D
E
范例2:
// C# code to copy StringCollection to array,
// starting at the specified index of
// the target array
using System;
using System.Collections;
using System.Collections.Specialized;
class GFG {
// Driver code
public static void Main()
{
// creating a StringCollection named myCol
StringCollection myCol = new StringCollection();
// creating a string array named myArr1
String[] myArr1 = new String[] {"1", "2", "3",
"4", "5", "6"};
// Copying the elements of a string
// array to the end of the StringCollection.
myCol.AddRange(myArr1);
// creating a String array named myArr2
String[] myArr2 = new String[myCol.Count];
// Copying StringCollection to array myArr2
// starting from index -1
// This should raise exception "ArgumentOutOfRangeException"
// as index is less than 0
myCol.CopyTo(myArr2, -1);
// Displaying elements in array myArr2
for (int i = 0; i < myArr2.Length; i++) {
Console.WriteLine(myArr2[i]);
}
}
}
输出:
Unhandled Exception:
System.ArgumentOutOfRangeException: Value has to be >= 0.
Parameter name: destinationIndex
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.specialized.stringcollection.copyto?view=netframework-4.7.2