У меня есть матрица, которая является зубчатым массивом. Матрица бывает разных размеров, например:
char[][] grid1 = {
new char[] { '1', '1', '0', '1', '0' },
new char[] { '1', '1', '0', '0', '0' },
new char[] { '0', '0', '0', '0', '0' }
};
char[][] grid2 = {
new char[] { '1' }
};
У меня проблема в том, что мне нужно l oop над матрицей, чтобы получить или установить ее элементы. Я делаю это, используя вложенное значение для l oop, например:
for (int i = 0; i < grid.Length; i++)
{
for (int j = 0; j < grid[1].Length; j++)
{
System.Console.Write(grid[i][j]);
}
}
Вышеуказанный l oop отлично работает на grid1, потому что он многомерен. Но я получаю ошибку для grid2, потому что он имеет только одно измерение. Ошибка возникает, когда я использую "grid [1] .Length". Я попробовал «GetLength (1)», но у меня возникла та же проблема, потому что второго измерения не существует.
Как проверить, что матрица многомерна, чтобы избежать возникновения исключения? Кроме того, есть ли у них путь к l oop зубчатому массиву независимо от того, сколько он имеет измерений?