无法将带有[]的索引应用于类型为';方法组,(如何打印数组)

本文关键字:方法 何打印 数组 打印 类型 应用于 索引 | 更新日期: 2023-09-27 18:28:15

我有一个调用nums的数组,它包含int var。阵列是二维

int[,] nums = new int[lines, row];

我需要将数组中的每一行打印到另一行。

当我尝试像这样打印到数组时:

 for (int i = 0; i < lines; i++)
            for (int j = 0; j < 46; j++)
                Console.Write(nums[i,j]);

**当我使用上面的语法时,我在visualstudio中没有遇到错误,但当我运行程序时,我遇到了这一行的错误-Console.Write(nums[i,j]);。

错误-系统。IndeOutOfRangeException。

我得到了错误,我试图将语法更改为:

 for (int i = 0; i < lines; i++)
            for (int j = 0; j < 46; j++)
                Console.Write(nums[i][j]);

错误:"[]内的索引数量错误;预期为2"

和:

 for (int i = 0; i < lines; i++)
            for (int j = 0; j < 46; j++)
                Console.Write(nums[i][j].tostring());

更新

我太笨了。。。我写的是46(程序中的数字),而不是6(每行的数字)。

所有人都是ty,我很乐意提出这样一个问题。。。

TY!

无法将带有[]的索引应用于类型为';方法组,(如何打印数组)

如果是正整数值,例如int lines = 5; int row = 7;,您可以像这样打印表格:

  int[,] nums = new int[lines, row]; // <- Multidimensional (2 in this case) array, not an array of array which is nums[][]
  //TODO: fill nums with values, otherwise nums will be all zeros
  for (int i = 0; i < lines; i++) {
    Console.WriteLine(); // <- let's start each array's line with a new line
    for (int j = 0; j < row; j++) { // <- What the magic number "46" is? "row" should be here... 
      Console.Write(nums[i, j]); // <- nums[i, j].ToString() doesn't spoil the output
      if (j > 0) // <- let's separate values by spaces "1 2 3 4" instead of "1234"
        Console.Write(" ");
    }
  }

您正在处理两种不同类型的阵列

int[,] nums = new int[lines, row];

是多维数组。可以使用nums[x,y]访问数组的元素。

当您使用nums[x][y]时,您正在处理一个数组数组。

不能将数组语法与多维数组一起使用。

你可以试试C#中的多维数组和数组数组之间的区别是什么?详细信息。