与for循环相比,for循环中的数组值似乎有所不同

时间:2014-11-12 22:41:23

标签: c# arrays for-loop multidimensional-array

我有一个带有值的多维数组。我使用两个for循环来遍历每个项目并为它们添加一个值。虽然在数组中它们返回正确的值,但是当它退出并且我得到它的值时它完全不同。例如:

  • 循环前:[[1,1],[2,2],[3,3]]
  • 循环期间:[[2,2],[3,3],[4,4]]
  • 循环[[50,50][65,65][90,90]]
  • 之后

它似乎随机改变。

int[,] squareB = baseSquare;
int[,] squareC = baseSquare;
int[,] squareD = baseSquare;
Console.WriteLine("{0}", squareB[0, 1]);
for (int x = 0; x < sub; ++x)
{
     for (int y = 0; y < sub; ++y)
     {
          squareB[x, y] += 9;
          Console.WriteLine("{0}", squareB[x, y]);
          squareC[x, y] += 18;
          squareD[x, y] += 27;
     }
}
Console.WriteLine("{0}", squareB[0, 1]);

1 个答案:

答案 0 :(得分:4)

您在每次循环迭代时修改完全相同的数组树时间:

      squareB[x, y] += 9;
      squareC[x, y] += 18;
      squareD[x, y] += 27;

这些都改变了完全相同的值。