我对数组有一点问题。我是C#的新手。

我尝试将一个Int Array复制到2个其他Int Arrays中

unsortedArray = randomNumbers();

unsortedArray2 = unsortedArray;
unsortedArray3 = unsortedArray;

但是,如果我对unsortedArray2进行排序,那么unsortedArray3也将进行排序。

有人能帮我吗?

最佳答案



重要的第一件事是在这一行:

unsortedArray2 = unsortedArray;

您不会将unsortedArray的值复制到unsortedArray2中。 =称为assignment operator



现在,您需要了解的第二件事是理解C#Reference Types和Value类型中的两种对象

该文档实际上很好地解释了它:



解决方案可以是使用Array.Copy方法。
Array.Copy(unsortedArray, 0, unsortedArray2 , 0, unsortedArray.Length);

在这种情况下,CopyTo方法也可以使用
unsortedArray.CopyTo(unsortedArray2 , 0);

注意:这将起作用,因为数组的内容是值类型!如果它也是引用类型,则更改项目之一的子值也将导致目标数组中同一项目的更改。

关于c# - 将阵列复制到阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46070530/

10-15 21:21