C# - 使用CopyTo()-Help进行数组复制

use*_*677 4 c#

我必须将以下int数组复制到Array中:

int[] intArray=new int[] {10,34,67,11};
Run Code Online (Sandbox Code Playgroud)

我试过了

Array copyArray=Array.CreateInstance(typeof(int),intArray.Length,intArray);
intArray.CopyTo(copyArray,0);
Run Code Online (Sandbox Code Playgroud)

但是,似乎我犯了一个错误,所以我没有得到结果.

Jon*_*eet 8

你知道吗int[]已经是一个Array?如果您只是需要将其传递给接受的内容Array,并且您不介意它是否更改内容,则只需传入原始引用即可.

另一种方法是克隆它:

int[] clone = (int[]) intArray.Clone();
Run Code Online (Sandbox Code Playgroud)

如果你真的需要使用Array.CopyTo然后使用其他答案 - 但否则,这条路线会更简单:)


Ree*_*sey 8

这有效:

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);
Run Code Online (Sandbox Code Playgroud)

您在Array.CreateInstance行中有一个额外的"intArray".

话虽这么说,如果你不需要Array.CreateInstance方法(不确定你是不是想要解决这个问题),这可以简化:

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

更简单:

int[] intArray = new int[] { 10, 34, 67, 11 };
int[] copyArray = (int[])intArray.Clone();
Run Code Online (Sandbox Code Playgroud)