C#中System.Array.CopyTo() 和 System.Array.Clon() 的區(qū)別
System.Array.CopyTo() 和 System.Array.Clone() 是用于數組復制的兩種不同方法,它們在實現和用途上有一些區(qū)別。
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() 方法用于創(chuàng)建當前數組的淺表副本。它是 Array 類的實例方法,返回一個新數組,該數組是原始數組的淺表副本。淺表副本意味著數組元素本身被復制,但如果數組包含引用類型的元素(如對象),則引用仍然指向相同的對象。
示例:
using System;
class Program
{
static void Main()
{
int[] sourceArray = { 1, 2, 3, 4, 5 };
// 使用 Clone() 方法創(chuàng)建數組的淺表副本
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 + " ");
}
}
}二者都是用于復制數組的方法,但它們有一些區(qū)別:
System.Array.CopyTo():
方法簽名:void CopyTo(Array array, int index)
功能:將當前數組的所有元素復制到另一個數組中。
參數:
- array:目標數組,即要將元素復制到的數組。
- index:目標數組中的起始索引,從該索引開始復制元素。
返回值:無
注意事項:
目標數組必須具有足夠的空間來容納當前數組的所有元素,否則會引發(fā)異常。
復制操作會從當前數組的第一個元素開始,按順序復制到目標數組中。
System.Array.Clone():
- 方法簽名:object Clone()
- 功能:創(chuàng)建當前數組的淺表副本。
- 參數:無
返回值:返回一個新的數組對象,該對象是當前數組的淺表副本。
注意事項:
- 淺表副本意味著新數組和原始數組共享相同的元素對象。如果修改其中一個數組中的元素對象,另一個數組中的相應元素也會受到影響。、
- 新數組的類型與原始數組的類型相同。
總結:
- System.Array.CopyTo() 方法將當前數組的所有元素復制到另一個數組中,并且可以指定目標數組的起始索引。
- System.Array.Clone() 方法創(chuàng)建當前數組的淺表副本,返回一個新的數組對象。
到此這篇關于C#中System.Array.CopyTo() 和 System.Array.Clon() 的區(qū)別的文章就介紹到這了,更多相關C# System.Array.CopyTo() 和 System.Array.Clon() 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

