Declaração e Inicialização de Matrizes 2D
Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 2 de 66.
Um array 2D em C# pode ser criado usando arrays denteados, que são arrays de arrays, permitindo armazenar dados em uma estrutura semelhante a uma grade.
Para criar uma matriz irregular de inteiros com 3 linhas e 4 colunas:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];O código acima cria uma matriz 2D que se parece com isto (todos os elementos inicializados com 0):
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]Inicialize uma matriz irregular com valores:
int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};Isso cria um array 2D com 2 linhas e 3 colunas, contendo os valores:
[1, 2, 3]
[4, 5, 6]Para obter o número de linhas e colunas:
int rows = matrix.Length; // Retorna 2
int columns = matrix[0].Length; // Retorna 3 (para a primeira linha)O acesso a elementos em um array 2D requer dois índices: um para a linha e outro para a coluna.
Atribua um valor a uma posição específica (row 1, column 2):
grid[1][2] = 42;Leia um valor de uma posição específica (linha 0, coluna 3):
int value = grid[0][3];Lembre-se de que os índices dos arrays começam em 0, portanto, os intervalos válidos são:
- Linhas: 0 a 2 (para um array de 3 linhas)
- Colunas: 0 a 3 (para um array de 4 colunas)
Se você tentar acessar um elemento fora desses intervalos (como grid[3][2]), receberá uma IndexOutOfRangeException.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Matrizes Multidimensionais
Noções Básicas de Matrizes 2DDeclaração e Inicialização de Matrizes 2DAcesso aos Elementos de Matrizes 2DLoops Aninhados com Matrizes 2DMatrizes IrregularesOperações Comuns com MatrizesRevisão - Multidimensional4Técnicas de Controle de Fluxo
Retornos AntecipadosCláusulas de GuardaInstruções de Salto (goto)Break e ContinueSimplificando Condicionais Aninhadas7Operadores Lógicos Avançados
Avaliação de Curto-CircuitoOperadores Lógicos CondicionaisPrecedência de OperadoresRevisão - Operadores Avançados2Tomada de Decisões Avançada
Múltiplas CondiçõesLógica Booleana ComplexaComparação entre If e SwitchInstruções Switch AninhadasRevisão - Decisões Avançadas5Tratamento de Exceções
Noções básicas de Try-CatchTipos de ExceçãoMúltiplos blocos CatchTrabalhando com ArquivosBloco FinallyUsando Using vs. Try-FinallyExceções PersonalizadasRecapitulação - Tratamento de Erros3Aprimoramentos de Loops
Desempenho de LoopsIteração de Estruturas ComplexasCada Tipo de LoopRefatoração de LoopsRevisão - Loops Otimizados6Tratamento de Nulos
Fundamentos de Referências NulasTipos de Valor AnuláveisPadrões de Verificação de NulosProgramação DefensivaRecapitulação — Segurança contra NulosPratique por conta própria: Compilador de C# online