无法将带有[]的索引应用于类型为';方法组,(如何打印数组)
本文关键字:方法 何打印 数组 打印 类型 应用于 索引 | 更新日期: 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#中的多维数组和数组数组之间的区别是什么?详细信息。