2009-09-04 68 views
2

我已經以下int數組複製到陣列陣列複製:- C#,使用CopyTo從() - 幫助

int[] intArray=new int[] {10,34,67,11}; 

我試圖作爲

Array copyArray=Array.CreateInstance(typeof(int),intArray.Length,intArray); 
intArray.CopyTo(copyArray,0); 

但是,似乎我已經作出了錯誤,所以我沒有得到結果。

回答

5

這工作:

int[] intArray = new int[] { 10, 34, 67, 11 }; 
Array copyArray = Array.CreateInstance(typeof(int), intArray.Length); 
intArray.CopyTo(copyArray, 0); 
foreach (var i in copyArray) 
    Console.WriteLine(i); 

在Array.CreateInstance行中有一個額外的「intArray」。

話雖這麼說,如果你不需要Array.CreateInstance方法(不知道這是你試圖找出什麼,雖然)這可以簡化爲:

int[] intArray = new int[] { 10, 34, 67, 11 }; 
int[] copyArray = new int[intArray.Length]; 
intArray.CopyTo(copyArray, 0); 

更簡單:

int[] intArray = new int[] { 10, 34, 67, 11 }; 
int[] copyArray = (int[])intArray.Clone(); 
+0

是塔額外的陣列是問題的原因 – user160677 2009-09-04 16:52:56

4

試試這個:

int[] copyArray = new int[intArray.Length]; 
Array.Copy(intArray, copyArray, intArray.Length); 
7

您是否知道一個int[]已經是Array?如果您只需要將其傳遞給Array即可,並且您不介意它是否更改了內容,只需傳入原始參考即可。

另一種方法是克隆它:

int[] clone = (int[]) intArray.Clone(); 

如果你真的需要使用Array.CopyTo然後用其他的答案 - 但除此之外,這條路線會更簡單:)

+0

感謝喬恩指點出來 – user160677 2009-09-04 16:54:09

1

在這種特殊情況下,只需要使用

int[] copyArray = (int[]) intArray.Clone();