C#中System.Array.CopyTo() 和 System.Array.Clon() 的区别
作者:那个那个鱼
System.Array.CopyTo()和System.Array.Clone()是用于数组复制的两种不同方法,本文就来介绍C,#中System.Array.CopyTo() 和 System.Array.Clon() 的区别,具有一定的参考价值,感兴趣的可以了解一下
System.Array.CopyTo()
和 System.Array.Clone()
是用于数组复制的两种不同方法,它们在实现和用途上有一些区别。
System.Array.CopyTo() 方法:
CopyTo()
方法用于将数组的元素复制到另一个数组。它是 Array
类的实例方法,可以用于复制一个数组的内容到另一个数组,前提是目标数组具有足够的空间来容纳源数组的元素。
示例:
using System; class Program { static void Main() { int[] sourceArray = { 1, 2, 3, 4, 5 }; int[] destinationArray = new int[5]; // 使用 CopyTo() 方法复制数组 sourceArray.CopyTo(destinationArray, 0); // 输出目标数组 Console.WriteLine("Destination Array:"); foreach (int num in destinationArray) { Console.Write(num + " "); } } }
System.Array.Clone() 方法:
Clone()
方法用于创建当前数组的浅表副本。它是 Array
类的实例方法,返回一个新数组,该数组是原始数组的浅表副本。浅表副本意味着数组元素本身被复制,但如果数组包含引用类型的元素(如对象),则引用仍然指向相同的对象。
示例:
using System; class Program { static void Main() { int[] sourceArray = { 1, 2, 3, 4, 5 }; // 使用 Clone() 方法创建数组的浅表副本 int[] clonedArray = (int[])sourceArray.Clone(); // 修改源数组的一个元素 sourceArray[0] = 10; // 输出两个数组 Console.WriteLine("Source Array:"); foreach (int num in sourceArray) { Console.Write(num + " "); } Console.WriteLine("\nCloned Array:"); foreach (int num in clonedArray) { Console.Write(num + " "); } } }
二者都是用于复制数组的方法,但它们有一些区别:
System.Array.CopyTo():
方法签名:void CopyTo(Array array, int index)
功能:将当前数组的所有元素复制到另一个数组中。
参数:
- array:目标数组,即要将元素复制到的数组。
- index:目标数组中的起始索引,从该索引开始复制元素。
返回值:无
注意事项:
目标数组必须具有足够的空间来容纳当前数组的所有元素,否则会引发异常。
复制操作会从当前数组的第一个元素开始,按顺序复制到目标数组中。
System.Array.Clone():
- 方法签名:object Clone()
- 功能:创建当前数组的浅表副本。
- 参数:无
返回值:返回一个新的数组对象,该对象是当前数组的浅表副本。
注意事项:
- 浅表副本意味着新数组和原始数组共享相同的元素对象。如果修改其中一个数组中的元素对象,另一个数组中的相应元素也会受到影响。、
- 新数组的类型与原始数组的类型相同。
总结:
- System.Array.CopyTo() 方法将当前数组的所有元素复制到另一个数组中,并且可以指定目标数组的起始索引。
- System.Array.Clone() 方法创建当前数组的浅表副本,返回一个新的数组对象。
到此这篇关于C#中System.Array.CopyTo() 和 System.Array.Clon() 的区别的文章就介绍到这了,更多相关C# System.Array.CopyTo() 和 System.Array.Clon() 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!