我已經以下int數組複製到陣列陣列複製:- C#,使用CopyTo從() - 幫助
int[] intArray=new int[] {10,34,67,11};
我試圖作爲
Array copyArray=Array.CreateInstance(typeof(int),intArray.Length,intArray);
intArray.CopyTo(copyArray,0);
但是,似乎我已經作出了錯誤,所以我沒有得到結果。
我已經以下int數組複製到陣列陣列複製:- C#,使用CopyTo從() - 幫助
int[] intArray=new int[] {10,34,67,11};
我試圖作爲
Array copyArray=Array.CreateInstance(typeof(int),intArray.Length,intArray);
intArray.CopyTo(copyArray,0);
但是,似乎我已經作出了錯誤,所以我沒有得到結果。
這工作:
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();
試試這個:
int[] copyArray = new int[intArray.Length];
Array.Copy(intArray, copyArray, intArray.Length);
您是否知道一個int[]
已經是Array
?如果您只需要將其傳遞給Array
即可,並且您不介意它是否更改了內容,只需傳入原始參考即可。
另一種方法是克隆它:
int[] clone = (int[]) intArray.Clone();
如果你真的需要使用Array.CopyTo
然後用其他的答案 - 但除此之外,這條路線會更簡單:)
感謝喬恩指點出來 – user160677 2009-09-04 16:54:09
在這種特殊情況下,只需要使用
int[] copyArray = (int[]) intArray.Clone();
是塔額外的陣列是問題的原因 – user160677 2009-09-04 16:52:56