gpt4 book ai didi

c# - 将数组复制到数组

转载 作者:太空狗 更新时间:2023-10-29 18:19:45 25 4
gpt4 key购买 nike

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

我尝试将 int 数组复制到另外两个 int 数组中

unsortedArray = randomNumbers();

unsortedArray2 = unsortedArray;
unsortedArray3 = unsortedArray;

但是,如果我对 unsortedArray2 进行排序,unsortedArray3 也会被排序。

有人可以帮助我吗?

最佳答案

I try to copy a Int Array into 2 other Int Arrays with

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

unsortedArray2 = unsortedArray;

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

The assignment operator (=) stores the value of its right-hand operand in the storage location,

现在,要理解这种现象,您需要知道的第二件事是 C# 中有两种类型的对象 Reference Types和值类型

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

Variables of reference types store references to their data (objects), while variables of value types directly contain their data. With reference types, two variables can reference the same object; therefore, operations on one variable can affect the object referenced by the other variable.

解决方案可以是使用 Array.Copy方法。

Array.Copy(unsortedArray, 0, unsortedArray2 , 0, unsortedArray.Length);

CopyTo方法也适用于这种情况

unsortedArray.CopyTo(unsortedArray2 , 0);

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com