C# 中的 System.ArrayCopyTo() 与 System.ArrayClone()

1. System.ArrayCopyTo()

System.ArrayCopyTo() 是 C# 中数组的一个方法,用于将数组中的元素复制到另一个数组中。

1.1 方法定义

System.ArrayCopyTo() 的定义如下:

public void ArrayCopyTo(Array array, int index);

其中,array 表示要将元素复制到的目标数组,index 表示将数组复制到目标数组中的哪个位置开始。

1.2 方法用法

例如,有两个数组 arr1 和 arr2,希望将 arr1 中的元素复制到 arr2 中:

int[] arr1 = {1,2,3,4,5};

int[] arr2 = new int[5];

arr1.ArrayCopyTo(arr2,0);

注意,由于数组下标从 0 开始,因此参数 index 取值为 0,将 arr1 中的元素从 arr2 的第 0 个位置开始复制。

2. System.ArrayClone()

System.ArrayClone() 是 C# 中数组的一个方法,用于创建当前数组的浅表副本。

2.1 方法定义

System.ArrayClone() 的定义如下:

public object Clone();

该方法返回一个新的数组,该数组是当前数组的一个浅表副本。

2.2 方法用法

例如,有一个数组 arr1,希望创建一个浅表副本 arr2:

int[] arr1 = {1,2,3,4,5};

int[] arr2 = (int[])arr1.Clone();

需要注意的是,因为 arr2 只是 arr1 的一个浅表副本,因此它们共享相同的元素。如果在 arr1 中修改一个元素,arr2 中对应位置的元素也会发生变化,反之亦然。

3. System.ArrayCopyTo() 与 System.ArrayClone() 的区别

System.ArrayCopyTo() 和 System.ArrayClone() 都是 C# 中操作数组的方法。它们的主要区别在于:

System.ArrayCopyTo() 将源数组中的元素复制到目标数组中,不改变源数组;

System.ArrayClone() 创建一个当前数组的浅表副本,对副本的操作也会影响到源数组。

需要根据具体情况决定选择使用哪个方法。

后端开发标签