Array.Copy

Array.Copy 是 .NET Framework 提供的一个用于数组操作的方法,它用于将一个数组的内容复制到另一个数组。这个方法非常高效,适用于各种类型的数组,并且提供了多种重载形式,以满足不同的需求。

Array.Copy 的基本用法

方法签名

Array.Copy 方法有多个重载形式,以下是一些常见的重载:
  1. Array.Copy(Array sourceArray, Array destinationArray)
    • 将整个 sourceArray 的内容复制到 destinationArray
    • sourceArraydestinationArray 的长度必须相同。
  2. Array.Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length)
    • sourceArraysourceIndex 开始,复制 length 个元素到 destinationArraydestinationIndex 位置。
    • sourceIndexdestinationIndex 是从 0 开始的索引。

示例代码

示例 1:复制整个数组

csharp
复制
int[] sourceArray = { 1, 2, 3, 4, 5 };
int[] destinationArray = new int[sourceArray.Length];

Array.Copy(sourceArray, destinationArray);

foreach (int item in destinationArray)
{
    Console.Write(item + " ");
}
// 输出:1 2 3 4 5
 

示例 2:复制部分数组

csharp
复制
int[] sourceArray = { 1, 2, 3, 4, 5 };
int[] destinationArray = new int[5];

Array.Copy(sourceArray, 1, destinationArray, 2, 3);

foreach (int item in destinationArray)
{
    Console.Write(item + " ");
}
// 输出:0 0 2 3 4
 

参数说明

  • sourceArray:源数组,从中复制数据。
  • sourceIndex:源数组中的起始索引。
  • destinationArray:目标数组,将数据复制到此数组。
  • destinationIndex:目标数组中的起始索引。
  • length:要复制的元素数量。

注意事项

  1. 数组类型:
    • sourceArraydestinationArray 的类型必须兼容。例如,不能将一个 int[] 数组的内容复制到一个 string[] 数组中。
  2. 数组长度:
    • 确保目标数组有足够的空间来存储复制的数据。如果目标数组的空间不足,会抛出 ArgumentException
  3. 性能:
    • Array.Copy 是一个非常高效的数组复制方法,它使用内存复制操作来实现,性能优于手动循环复制。
  4. 线程安全:
    • Array.Copy 是线程安全的,但如果你在多线程环境中操作数组,需要确保对数组的访问是线程安全的。

总结

Array.Copy 是一个非常实用的方法,用于高效地复制数组内容。它提供了多种重载形式,可以满足不同的需求,如复制整个数组或部分数组。使用时需要注意数组类型、长度和线程安全等问题,以确保代码的正确性和性能。
posted @ 2025-08-20 11:57  yinghualeihenmei  阅读(32)  评论(0)    收藏  举报