Ответ 1
matrix.GetLength(0) -> Gets the first dimension size
matrix.GetLength(1) -> Gets the second dimension size
Как получить длину строки или столбца многомерного массива в С#?
например:
int[,] matrix = new int[2,3];
matrix.rowLength = 2;
matrix.colLength = 3;
matrix.GetLength(0) -> Gets the first dimension size
matrix.GetLength(1) -> Gets the second dimension size
Вы просмотрели свойства 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-массивы.
В любом случае, с неровной/разреженной структурой, вам нужно использовать свойства длины для каждой ячейки.
Используйте matrix.GetLowerBound(0)
и matrix.GetUpperBound(0)
.