我必须将以下int数组复制到Array:
int[] intArray=new int[] {10,34,67,11};
我试过
Array copyArray=Array.CreateInstance(typeof(int),intArray.Length,intArray);
intArray.CopyTo(copyArray,0);
但是,我似乎犯了一个错误,所以我没有得到结果。
答案 0 :(得分:8)
您是否知道int[]
已经是Array
?如果您只需要将其传递给接受Array
的内容,并且您不介意更改内容,只需传入原始引用即可。
另一种方法是克隆它:
int[] clone = (int[]) intArray.Clone();
如果确实需要使用Array.CopyTo
,那么请使用其他答案 - 否则,此路线会更简单:)
答案 1 :(得分:7)
这有效:
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();
答案 2 :(得分:4)
请改为尝试:
int[] copyArray = new int[intArray.Length];
Array.Copy(intArray, copyArray, intArray.Length);
答案 3 :(得分:1)
在这种特殊情况下,只需使用
即可int[] copyArray = (int[]) intArray.Clone();