C# CopyTo(T[], Int32) 方法攻略
CopyTo(T[], Int32)
方法是 System.Array
中定义的一个方法,它可以将一个一维数组中的元素复制到另一个一维数组中指定的位置。下面详细讲解该方法的用法和示例:
语法
以下是 CopyTo(T[], Int32)
方法的语法:
public void CopyTo(
Array array,
int index
)
参数
array
:目标数组。必须是一维数组(排列成行或列)。类型为 System.Array
,表示接收复制操作的一维数组。
index
:索引,表示目标数组中存储复制内容的起始位置。
异常
ArgumentNullException
:源数组或目标数组为空。RankException
:源数组和目标数组的维数不同。ArgumentException
:源数组和目标数组的元素类型不同。ArgumentOutOfRangeException
:index
是负数。
示例1
下面的示例演示如何使用 CopyTo(T[], Int32)
方法将一个整型数组的一部分复制到另一个整型数组中:
int[] array1 = new int[] { 1, 2, 3, 4, 5 };
int[] array2 = new int[] { 10, 20, 30, 40, 50, 60 };
array1.CopyTo(array2, 2);
foreach (var item in array2)
{
Console.WriteLine(item);
}
运行结果如下:
10
20
1
2
3
4
这里把原数组的第1、第2个元素复制到了目标数组的第3、第4个位置上。
示例2
下面的示例演示如何在一个包含不同类型的对象的数组中分离不同类型的对象,将它们存储到各自类型的数组中。
object[] mixedArray = new object[]
{ 1, 2.9, "Test", true, 'a', "Hello World" };
int[] intArray = new int[2];
double[] doubleArray = new double[1];
string[] stringArray = new string[2];
bool[] boolArray = new bool[1];
char[] charArray = new char[1];
int currentIndex = 0;
foreach (object item in mixedArray)
{
if (item is int && currentIndex < 2)
{
intArray[currentIndex] = (int)item;
currentIndex++;
}
else if (item is double && doubleArray.Length > 0)
{
doubleArray[0] = (double)item;
}
else if (item is string && currentIndex >= 2 && currentIndex < 4)
{
stringArray[currentIndex - 2] = (string)item;
currentIndex++;
}
else if (item is bool && boolArray.Length > 0)
{
boolArray[0] = (bool)item;
}
else if (item is char && charArray.Length > 0)
{
charArray[0] = (char)item;
}
}
Console.WriteLine("Int Array:");
foreach (var item in intArray)
{
Console.WriteLine(item);
}
Console.WriteLine("Double Array:");
foreach (var item in doubleArray)
{
Console.WriteLine(item);
}
Console.WriteLine("String Array:");
foreach (var item in stringArray)
{
Console.WriteLine(item);
}
Console.WriteLine("Boolean Array:");
foreach (var item in boolArray)
{
Console.WriteLine(item);
}
Console.WriteLine("Char Array:");
foreach (var item in charArray)
{
Console.WriteLine(item);
}
运行结果如下:
Int Array:
1
2
Double Array:
2.9
String Array:
Test
Hello World
Boolean Array:
True
Char Array:
a
这里首先创建了一个包含不同类型对象的数组,并声明了5个不同类型的数组。在循环中,通过判断对象类型,把它们分别存储到对应类型的数组中。最后输出每个数组存储的内容。在该示例中,CopyTo
方法并没有被用到,但我们可以看到在复制对象到其它数组变量中时,需要格外细心处理转换方式和类型匹配问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# CopyTo(T[],Int32):从特定的 ICollection