System.Array.CopyTo()和System.Array.Clone()之间的区别

System.Array.CopyTo()System.Array.Clone()之间有什么区别?


Clone()方法返回包含原始数组中所有元素的新数组(浅拷贝)对象。 CopyTo()方法将元素复制到另一个现有数组中。 两者都执行浅拷贝。 浅拷贝意味着内容(每个数组元素)包含与原始数组中元素相同的对象的引用。 深层副本(这两种方法都不会执行)会创建每个元素对象的新实例,从而生成一个不同的但相同的对象。

所以区别是:

1- CopyTo require to have a destination array when Clone return a new array.
2- CopyTo let you specify an index (if required) to the destination array.
编辑:

删除错误的例子。


到目前为止还没有提到的另一个区别是

  • Clone()目标数组不需要存在,因为从头开始创建一个新的。
  • 使用CopyTo()不仅目标数组需要已经存在,它还需要足够大以将源数组中的所有元素与您指定的目标索引保持一致。

  • @PatrickDesjardins表示,尽管许多被误导的灵魂认为CopyTo做了深层复制,但两者都执行浅度拷贝。

    但是, CopyTo允许您将一个数组复制到目标数组中的指定索引,使其具有更大的灵活性。

    链接地址: http://www.djcxy.com/p/79357.html

    上一篇: Difference between the System.Array.CopyTo() and System.Array.Clone()

    下一篇: python list.copy shallow vs deep copy