Я хотел прочитать двумерный массив и записать его как матрицу в консоль. Мой код показан ниже
Для чтения массива
int[][] arr = new int[3][];
for(int i=0;i<3;i++)
{
arr[i] = Array.ConvertAll(Console.ReadLine().Split(' '),aTemp => Convert.ToInt32(aTemp));
}
Для записи массива в качестве матрицы для консоли
for(int i=0;i<arr.GetLength(0);i++)
{
for(int j=0;j<arr.GetLength(1);j++)
{
Console.WriteLine("\t" + arr[i][j]);
}
}
Однако, когда я ввожу ввод в консоль и пытаюсь запустить, я получаю здесь исключение Index out of bound.
arr.GetLength(1);
Я затем попробовал инициализировать столбец, как это, и строкой, и столбцом "int [] [] arr = new int [3] [3];".
В это время появляется другая ошибка:
Недопустимый спецификатор ранга: ожидается ',' или ']'
Затем я попытался инициализировать массив как ниже
"int[,] arr = new int[3,3];"
Ошибка некорректного спецификатора ранга на этот раз исчезла, но ошибка появляется в строке чтения элементов массива,
, вероятно, эта ошибка может быть связана с тем, что arr[i][j]
не используется и не читается каждый elements.
Я просто хочу знать, в чем была ошибка в моем исходном коде, что я не получаю значение GetLength (1). и В чем разница между int[,] arr = new int[3,3];
и int[][]arr = new int[3][3];
, а также есть ли какой-либо оптимизированный способ чтения двухмерного массива, такого как оператор, вместо использования 2 для циклов.
Надеюсь, вопрос ясен. Было бы здорово, если бы мне кто-нибудь помог с этой проблемой. Заранее спасибо !!!