Двумерный массив можно представить в виде таблицы, в которой длина каждой строки остается неизменной по всему массиву. Но в C# можно также создавать специальный тип двумерного массива, называемый ступенчатым массивом.
Ступенчатый массив представляет собой массив массивов, в котором длина каждого массива может быть разной. Следовательно, ступенчатый массив может быть использован для составления таблицы из строк разной длины.
Ступенчатые массивы объявляются с помощью ряда квадратных скобок, в которых указывается их размерность. Например, для объявления двумерного ступенчатого массива служит следующая общая форма: тип [][] имя массива = new тип[размер] [];
где размер обозначает число строк в массиве. Память для самих строк распределяется индивидуально, и поэтому длина строк может быть разной.
Давайте рассмотрим пример использования ступенчатого массива:
Еще один пример использования ступенчатого массива:
Давайте рассмотрим пример использования ступенчатого массива:
Еще один пример использования ступенчатого массива:
Все массивы являются объектами и у них есть некоторые свойства. Самым полезным для нас будет свойство Length, которое возвращает количество элементов в массиве (во всех размерностях)
static void Main(string[] args) { int[] numbers = new int[5]; int size = numbers.Length; // size = 5 }
Ступенчатые массивы находят полезное применение не во всех, а лишь в некоторых случаях. Так, если требуется очень длинный двумерный массив, который заполняется не полностью, т.е. такой массив, в котором используются не все, а лишь отдельные его элементы, то для этой цели идеально подходит ступенчатый массив.
И последнее замечание: ступенчатые массивы представляют собой массивы масси вов, и поэтому они не обязательно должны состоять из одномерных массивов. Напри мер, в приведенной ниже строке кода создается массив двумерных массивов.
int[][,] jagged = new int[3][,];
В следующей строке кода элементу массива jagged[0] присваивается ссылка на массив размерами 4?2. jagged[0] = new int[4, 2];
А в приведенной ниже строке кода элементу массива jagged[0][1,0] присваива ется значение переменнойi. jagged[0][1,0] = i;