Урок 9. Зубчатые массивы

Массив массивов – это массив, элементы которого сами являются массивами. Элементы массива массивов могут иметь различные размеры и измерения. Массивы массивов иногда также называются "не выровненными массивами".

Массивы массивов можно смешивать с многомерными массивами.

Зубчатый массив является массивом массивов и поэтому его элементы являются ссылочными типами и инициализируются значением null.

Пример создания зубчатого массива и пример расположения их элементов в памяти:

14

Пример создания зубчатого массива используя блок инициализатора:

int[][] jagged = new[]
{
   new int[] { 1, 2 },
   new int[] { 1, 2, 3, 4, 5 },
   new int[] { 1, 2, 3 }
};

Зубчатый массив может содержать в себе как одномерные массивы, так и многомерные:

int[][,] jagged = new int[3][,];
jagged[0] = new int[3, 3];
jagged[1] = new int[2, 3];
jagged[2] = new int[1, 2];

пример вывода элементов зубчатого массива:

static void Main()
{

    int[][] jagged = new[]
    {
       new int[] { 1, 2 },
       new int[] { 1, 2, 3, 4, 5 },
       new int[] { 1, 2, 3 }
    };

    // Во внешнем цикле выполняется проход по всем вложенным массивам.
    for (int i = 0; i < jagged.Length; ++i)
    {
        // Во внутреннем цикле выполняется обращение к каждому элементу вложенного массива.
        for (int j = 0; j < jagged[i].Length; ++j)
        {
            Console.Write("{0} ", jagged[i][j]);
        }
        Console.Write("\n");
    }


    // Delay.
    Console.ReadKey();
}

15

Примечание: в данном примере, поскольку внутренним массив является одномерным массивом, поэтому было использовано свойство Length для получения количества элементов в нём, но если внутренний массив является многомерным, тогда нужно использовать метод GetLength и дополнительные вложенные циклы.

Источник: видеоурок Александра Шевчука "МАССИВЫ"

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202