.net 是否通过将数组元素重新分配给其他变量来更新数组元素?

3qpi33ja  于 2022-12-01  发布在  .NET
关注(0)|答案(2)|浏览(163)

首先,抱歉,如果这是问之前,但我只是找不到任何相关的。

string anElement = "World";
string[] col = new string[2] { "Hello", anElement };
anElement = "Jupiter";
Array.ForEach(col, Console.WriteLine);

// Output:
// Hello
// World

如图所示,将不同的值重新分配给anElement引用不会更新该值。
同样的情况也适用于此场景:

string[] col = new string[2] { "Hello", "World" };
string elementToUpdate = col[1];
elementToUpdate = "Jupiter";
Array.ForEach(col, Console.WriteLine);

如果所有元素都存储为引用,为什么更改col[1]="Jupiter"有效而上面的操作无效?

q3aa0525

q3aa05251#

请尝试以下代码

string anElement = "World";
string[] col = new string[2] { "Hello", anElement };
col[1] = "Jupiter";
Array.ForEach(col, Console.WriteLine);

问题是您将值赋给anElement,而没有获取数组中需要进行更改的项

lskq00tm

lskq00tm2#

因为分配局部变量字符串anElement未在任何执行路径中使用请尝试以下代码

string anElement = "World";
        anElement = "Jupiter";
        string[] col = new string[2] { "Hello", anElement };
        Array.ForEach(col, Console.WriteLine);

        // Output:
        // Hello
        // Jupiter

相关问题