C# 数组 - Copy() 方法
C# 数组 Copy() 方法将一个数组中的元素复制到另一个数组,并根据需要执行类型转换和装箱。
将一种数据类型的值赋值给另一种数据类型的过程称为类型转换,将值类型转换为其引用类型的过程称为装箱。
让我们看看 C# 中的数组复制
异常
Copy() 方法有以下异常 -
- ArgumentNullException:如果 sourceArray 和 destinationArray 中有一个为 null,则抛出该异常。
- RankException:如果数组的维数不同,则抛出此异常。
- ArrayTypeMismatchException:如果源数组的类型与目标数组不兼容,则抛出此异常。
- ArgumentOutOfRangeException:如果源索引、目标索引或长度超出范围,则抛出此异常。
- ArgumentException:如果要复制的范围无效,则抛出此异常。
语法
以下是 C# 数组 Copy() 方法的语法 -
public static void Copy(Array sourceArray, Array destinationArray, int length);
参数
此方法接受以下参数 -
- sourceArray:包含待复制数据的一维数组。
- destinationArray:从 sourceArray 复制元素的目标一维数组。
- length:待复制元素的数量。
返回值
此方法不返回任何值。
示例 1:部分复制
让我们创建一个基本示例,演示如何在 C# 代码中使用 Copy() 方法 -
using System; class Program { public static void Main() { int[] source = { 1, 2, 3, 4, 5 }; int[] destination = { 10, 20, 30, 40, 50 }; Array.Copy(source, destination, 3); Console.WriteLine(string.Join(", ", destination)); } }
输出
以下是输出 -
1, 2, 3, 40, 50
示例 2:默认复制
让我们看另一个 Copy() 方法的示例。在这里,我们将源数组的所有元素复制到目标数组 -
using System; class Program { public static void Main() { int[] source = { 1, 2, 3, 4, 5 }; int[] destination = new int[5]; Array.Copy(source, destination, source.Length); Console.WriteLine(string.Join(", ", source)); Console.WriteLine(string.Join(", ", destination)); } }
输出
以下是输出 -
1, 2, 3, 4, 5 1, 2, 3, 4, 5
示例 3:不同大小数组之间的复制
在本例中,我们使用 Copy() 方法将元素从源数组传输到目标数组。如果源数组的大小小于目标数组的大小,则在复制源数组后,目标数组中剩余的索引将用零填充 -
using System; class Program { static void Main() { int[] source = { 1, 2, 3, 4, 5, 6, 7 }; int[] destination = new int[10]; Array.Copy(source, destination, source.Length); Console.WriteLine("复制后的目标数组:"); foreach (int item in destination) { Console.Write(item + " "); } } }
输出
以下是输出 -
复制后的目标数组: 1 2 3 4 5 6 7 0 0 0
示例 4:处理错误
这是 copy() 方法的另一个示例。在这里,我们处理错误并显示错误消息 -
using System; class Program { static void Main() { try { int[] source = { 1, 2, 3 }; int[] destination = new int[2]; Array.Copy(source, destination, 5); } catch (ArgumentException ex) { Console.WriteLine($"Error: {ex.Message}"); } } }
输出
以下是输出 -
ERROR! Error: length