C# 拷貝數組的幾種方式
突然接觸到,所以就寫一下共享。
首先說明一下,數組是引用類型的,所以注意不要在復制時復制了地址而沒有復制數值!
其實在復制數組的時候,一定要用new在堆中開辟一塊新的空間專門用於存放數組,這樣才是有效的。
(1)
int[] pins = { 9, 3, 7, 2 };
int[] copy=new int[pins.length];
for (int i
= 0; i < copy.length; i++)
{
copy[i]
= pins[i];
}
(2)
int[]
copy = new int[pins.Length];
pins.CopyTo(copy, 0);
(3)
Int[] pins= new int[4]{9,3,7,2};
Int[] alias=pins;
注意這種復制只是一種引用而已,只是把數據的地址傳遞給了alias數組,所以不太推薦這種方式來復制數組;
(4)
Array.Copy(pins,copy,copy.Length)
(5)
Int[] copy=(int[])pins.Clone();
這裡說明一下為什麼要用到int[]的強制類型轉換,原因就在於Clone的結果類型是object的,所以需要強制轉換為int[]
Object類其實就是我們所有類的基類。