English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Orientação a Objetos (OOP)

Array de array de array C#

O array de array de array é um array de arrays. O array de array de array armazena arrays em vez de valores literais. Por exemplo, um array bidimensional é um array unidimensional de elementos idênticos, mas o array de array de array, cada array abaixo tem um número diferente de elementos.

O exemplo a seguir declara um array de array de array.

int[][] jArray1 = new int[2]; // pode conter dois arrays unidimensionais 
int[][,] jArray2 = new int[3][,]; // pode conter três arrays bidimensionais

No exemplo acima, o jArray1Pode armazenar até dois arrays unidimensionais. jArray2Pode armazenar até três arrays bidimensionais, o array [ e ] especifica o array bidimensional.

int[][] jArray = new int[2]; 
jArray[0] = new int[3]{1, 2, 3};
jArray[1] = new int[4]{4, 5, 6, 7 };

Você também pode inicializar o array de array de array no momento da declaração, conforme exemplo a seguir.

int[][] jArray = new int[2]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
jArray[0][0]; //Retorno1
jArray[0][1]; //Retorno2
jArray[0][2]; //Retorno3
jArray[1][0]; //Retorno4
jArray[11]; //Retorno5
jArray[12]; //Retorno6
jArray[13]; //Retorno7

Você pode usar dois loops for para acessar um array de array de array, conforme exemplo a seguir.

int[][] jArray = new int[2]{
                new int[3]{1, 2, 3},
                new int[4]{4, 5, 6, 7}
            };
for(int i=0; i<jArray.Length; i++)
{
	for(int j=0; j < (jArray[i]).Length; j++)
		Console.WriteLine(jArray[i][j]);
}

Abaixo está o array de array de array que armazena arrays bidimensionais, onde o segundo parênteses [ e ] representa um array bidimensional.

int[][,] jArray = new int[2][,];
jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
jArray[1] = new int[2, 2] { { 7, 8 }, { 9, 10 } }; 
jArray[0][1, 1]; //Retorno4
                                             
jArray[11, 0]; //Retorno9
                                             
jArray[11, 1]; //Retorno10

Se você adicionar outro parênteses, então é um array de arrays.

int[][][] intJaggedArray = new int[2]] 
                            {
                                new int[2][]  
                                { 
                                    new int[3] { 1, 2, 3},
                                    new int[2] { 4, 5} 
                                },
                                new int[1][]
                                { 
                                    new int[3] { 7, 8, 9}
                                }
                            };
Console.WriteLine(intJaggedArray[0][0][0]); // 1
Console.WriteLine(intJaggedArray[0][11]); // 5
    
Console.WriteLine(intJaggedArray[1][0][2]); // 9

No exemplo de array intercalado acima, três chaves de array[][][] representam arrays de arrays de arrays. Portanto, intJaggedArray conterá dois elementos, o que significa duas arrays. Agora, cada array ainda contém uma array (umimensional). intJaggedArray[0][0][0] aponta para o primeiro elemento da primeira array interna. intJaggedArray[1][0][2]] Aponta para o terceiro elemento da segunda array interna. A figura a seguir ilustra isso.

Array de Dente de Sabre