Dominando Arrays Irregulares (Jagged Arrays) em C#: Declaração, Inicialização e Acesso
Array Irregular (Jagged Array) em C#
Neste tutorial, aprenderemos sobre o array irregular (jagged array) em C#. Aprenderemos a declarar, inicializar e acessar o jagged array com a ajuda de exemplos.
Em C#, um jagged array consiste em múltiplos arrays como seus elementos. No entanto, diferentemente de arrays multidimensionais, cada array dentro de um jagged array pode ter tamanhos diferentes.
Antes de aprender sobre jagged array, certifique-se de conhecer:
- Arrays em C#
- Arrays Multidimensionais em C#
Declaração de Jagged Array em C#
Aqui está a sintaxe para declarar um jagged array em C#.
tipoDado[ ][ ] nomeDoArray = new tipoDado[linhas][ ];
Vamos ver um exemplo,
// declara jagged array int[ ][ ] jaggedArray = new int[2][ ];
Aqui,
int- tipo de dado do array[][]- representa jagged arrayjaggedArray- nome do jagged array[2][]- representa o número de elementos (arrays) dentro do jagged array
Como sabemos que cada elemento de um jagged array também é um array, podemos definir o tamanho do array individual. Por exemplo,
// define tamanho do primeiro array como 3 jaggedArray[0] = new int[3]; // define tamanho do segundo array como 2 jaggedArray[1] = new int[2];
Inicializando Jagged Array
Existem diferentes formas de inicializar um jagged array. Por exemplo,
1. Usando o número do índice
Uma vez declaramos um jagged array, podemos usar o número do índice para inicializá-lo. Por exemplo,
// inicializa o primeiro array jaggedArray[0][0] = 1; jaggedArray[0][1] = 3; jaggedArray[0][2] = 5; // inicializa o segundo array jaggedArray[1][0] = 2; jaggedArray[1][1] = 4;
Aqui,
- índice no primeiro colchete representa o índice do elemento do jagged array
- índice no segundo colchete representa o índice do elemento dentro de cada elemento do jagged array
2. Inicializar sem definir tamanho dos elementos do array
// declarando jagged array de string int[ ][ ] jaggedArray = new int[2] [ ]; // inicializa cada array jaggedArray[0] = new int[] {1, 3, 5}; jaggedArray[1] = new int[] {2, 4};
3. Inicializar durante a declaração do Jagged Array
int[ ][ ] jaggedArray = { new int[ ] {10, 20, 30}, new int[ ] {11, 22}, new int[ ] {88, 99} };
Acessando elementos de um jagged array
Podemos acessar os elementos do jagged array usando o número do índice. Por exemplo,
// acessa primeiro elemento do segundo array jaggedArray[1][0]; // acessa segundo elemento do segundo array jaggedArray[1][1]; // acessa segundo elemento do primeiro array jaggedArray[0][1];
Exemplo: Jagged Array em C#
using System; namespace JaggedArray { class Program { static void Main(string[] args) { // cria um jagged array int[ ][ ] jaggedArray = { new int[] {1, 3, 5}, new int[] {2, 4}, }; // imprime elementos do jagged array Console.WriteLine("jaggedArray[1][0]: " + jaggedArray[1][0]); Console.WriteLine("jaggedArray[1][1]: " + jaggedArray[1][1]); Console.WriteLine("jaggedArray[0][2]: " + jaggedArray[0][2]); Console.ReadLine(); } } }
Saída
jaggedArray[1][0]: 2 jaggedArray[1][1]: 4 jaggedArray[0][2]: 5
Aqui, dentro de um jagged array,
jaggedArray[1][0]- primeiro elemento do segundo arrayjaggedArray[1][1]- segundo elemento do segundo arrayjaggedArray[0][2]- terceiro elemento do primeiro array
Iterando através de um jagged array
Em C#, podemos usar loops para iterar através de cada elemento do jagged array. Por exemplo,
using System; namespace JaggedArray { class Program { static void Main(string[] args) { // declara um jagged array int[][] jaggedArray = new int[2][]; // define tamanho dos elementos do Jagged Array jaggedArray[0] = new int[3]; jaggedArray[1] = new int[2]; // inicializa o primeiro array jaggedArray[0][0] = 1; jaggedArray[0][1] = 3; jaggedArray[0][2] = 5; // inicializa o segundo array jaggedArray[1][0] = 2; jaggedArray[1][1] = 2; // loop for externo for (int i = 0; i < jaggedArray.Length; i++) { Console.Write("Elemento "+ i +": "); // loop for interno for (int j = 0; j < jaggedArray[i].Length; j++) { Console.Write(jaggedArray[i][j] + " "); } Console.WriteLine(); } Console.ReadLine(); } } }
Saída
Elemento 0: 1 3 5 Elemento 1: 2 2
No exemplo acima, usamos um loop for aninhado para iterar através do jagged array. Aqui,
1. Loop for externo
- para acessar os elementos (arrays) do jagged array
jaggedArray.Length- dá o tamanho do jagged array
2. Loop for interno
- para acessar os elementos do array individual dentro do jagged array.
jaggedArray[i].Length- dá o tamanho dos elementos doi-ésimoarray dentro do jagged array
Jagged Array com Array Multidimensional
Em C#, também podemos usar arrays multidimensionais como elementos de Jagged Array. Por exemplo,
int[ ][ , ] jaggedArrayTwoD = new int[2][ , ] { new int[,] { {1, 8}, {6, 7} }, new int[,] { {0, 3}, {5, 6}, {9, 10} } };
Aqui, cada elemento do jagged array é um array multidimensional:
new int[,] { {1, 8}, {6, 7} }- array 2D com 2 elementosnew int[ , ] { {0, 3}, {5, 6}, {9, 10} }- array 2D com 3 elementos
Vamos ver um exemplo,
using System; namespace JaggedArray { class Program { static void Main(string[] args) { // declara e inicializa jagged array com array 2D int[][,] jaggedArray = new int[3][ , ] { new int[ , ] { {1, 8}, {6, 7} }, new int[ , ] { {0, 3}, {5, 6}, {9, 10} }, new int[ , ] { {11, 23}, {100, 88}, {0, 10} } }; Console.WriteLine(jaggedArray[0][0, 1]); Console.WriteLine(jaggedArray[1][2, 1]); Console.WriteLine(jaggedArray[2][1, 0]); Console.ReadLine(); } } }
Saída
8 10 100
No exemplo acima, observe o código,
jaggedArray[0][0, 1]
Aqui,
[0]- representa o primeiro elemento (array 2D) do jagged array[0, 1]- representa o segundo elemento do primeiro array dentro do array 2D
Linguagem C
- Dominando Arrays em C#: Declaração, Inicialização e Operações
- Como Passar Arrays para Funções em C++: Guia Prático
- Técnicas de Cópia de Arrays em Java: Guia Completo
- Arrays em C++ Desmistificados: Declaração, Inicialização e Técnicas com Ponteiros
- Dominando Alocação Dinâmica de Arrays em C++: Guia Prático com Exemplos de Código
- Dominando Collections em C#: Tutorial Prático com Exemplos do Mundo Real
- Criando Array de Objetos em Java: Guia Passo a Passo
- MATLAB: Dominando Arrays Multidimensionais e Especiais
- Técnicas Avançadas de Inspeção BGA para Eletrônicos Confiáveis
- Array de Nanosensores E-Língua Avançado para Detecção Precisa de Biomoléculas em Líquidos