matrix.GetLength(0) -> Gets the first dimension size
matrix.GetLength(1) -> Gets the second dimension size
Ответ 2
Вы просмотрели свойства Array?
Length дает длину массива (общее количество ячеек).
GetLength(n) дает количество ячеек в указанном измерении (относительно 0). Если у вас 3-мерный массив:
int[,,] multiDimensionalArray = new int[21,72,103] ;
тогда multiDimensionalArray.GetLength(n) будет, для n = 0, 1 и 2, вернуть 21, 72 и 103 соответственно.
Если вы создаете Jagged/разреженные массивы, проблема несколько сложнее. Массивные/разреженные массивы [обычно] построены как вложенные массивы массивов внутри массивов. В этом случае вам необходимо изучить каждый элемент по очереди. Обычно это вложенные одномерные массивы, но нет причин, по которым вы не могли бы иметь, скажем, 2d-массив, содержащий 3D-массивы, содержащие 5d-массивы.
В любом случае, с неровной/разреженной структурой, вам нужно использовать свойства длины для каждой ячейки.
Ответ 3
Используйте matrix.GetLowerBound(0) и matrix.GetUpperBound(0).