Arrays Multidimensionais em C#: Arrays 2D Explicados com Exemplos de Código
Arrays Multidimensionais em C#
Neste tutorial, exploraremos arrays multidimensionais em C#, focando em exemplos bidimensionais com snippets de código claros.
Antes de mergulhar em arrays multidimensionais, revise arrays unidimensionais em C#.
Em um array multidimensional, cada elemento é ele mesmo um array. Por exemplo,
int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
Aqui, x é um array bidimensional contendo as linhas {1, 2, 3} e {3, 4, 5}. Cada linha é um array de três elementos.
Array Bidimensional em C#
Um array bidimensional é essencialmente uma tabela de linhas e colunas. Os elementos do array são arrays unidimensionais.

Na imagem, as linhas {1, 2, 3} e {3, 4, 5} representam as duas linhas do array 2D.
1. Declaração
Declare um array 2D assim:
int[ ] x = new int [2, 3];
Aqui, x pode conter 2 linhas e 3 colunas — 6 valores no total.
Nota: A vírgula única entre colchetes ([ ]) indica um array bidimensional.
2. Inicialização
Você pode inicializar o array na declaração:
int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
Ou especificar tamanho e valores simultaneamente:
int[ ] x = new int[2, 3]{ {1, 2, 3}, {3, 4, 5} };
3. Acessando Elementos
Use índices baseados em zero: x[linha, coluna]. Exemplos:
// array 2D int[ ] x = { { 1, 2 ,3}, { 3, 4, 5 } }; // primeiro elemento da primeira linha x[0, 0]; // 1 // terceiro elemento da segunda linha x[1, 2]; // 5 // terceiro elemento da primeira linha x[0, 2]; // 3

Exemplo: Array 2D em C#
using System; namespace MultiDArray { class Program { static void Main(string[] args) { // inicializando array 2D int[ ] numeros = {{2, 3}, {4, 5}}; // acessa primeiro elemento da primeira linha Console.WriteLine("Elemento no índice [0, 0] : "+numeros[0, 0]); // acessa primeiro elemento da segunda linha Console.WriteLine("Elemento no índice [1, 0] : "+numeros[1, 0]); } } }
Saída
Elemento no índice [0, 0] : 2 Elemento no índice [1, 0] : 4
Neste exemplo, numeros tem linhas {2, 3} e {4, 5}. Imprimimos valores usando os índices mostrados.
numeros[0, 0]– primeiro elemento da primeira linha (2)numeros[1, 0]– primeiro elemento da segunda linha (4)
Alterando Elementos
Atribua um novo valor a um índice para modificar o array:
using System; namespace MultiDArray { class Program { static void Main(string[] args) { int[ ] numeros = {{2, 3}, {4, 5}}; // elemento antigo Console.WriteLine("Elemento antigo no índice [0, 0] : "+numeros[0, 0]); // atribuindo novo valor numeros[0, 0] = 222; // novo elemento Console.WriteLine("Novo elemento no índice [0, 0] : "+numeros[0, 0]); } } }
Saída
Elemento antigo no índice [0, 0] : 2 Novo elemento no índice [0, 0] : 222
Aqui, o valor em [0, 0] muda de 2 para 222.
Iterando com Loops Aninhados
using System; namespace MultiDArray { class Program { static void Main(string[] args) { int[ ] numeros = { {2, 3, 9}, {4, 5, 9} }; for(int i = 0; i < numeros.GetLength(0); i++) { Console.Write("Linha "+ i+": "); for(int j = 0; j < numeros.GetLength(1); j++) { Console.Write(numeros[i, j]+" "); } Console.WriteLine(); } } } }
Saída
Linha 0: 2 3 9 Linha 1: 4 5 9
O loop externo itera sobre linhas (GetLength(0)), o loop interno sobre colunas (GetLength(1)).
Nota: Um array tridimensional contém múltiplos arrays 2D:
int[ , ] numeros = { { { 1, 3, 5 }, { 2, 4, 6 } }, { { 2, 4, 9 }, { 5, 7, 11 } } };
Aqui, [ , ] (duas vírgulas) denota um array 3D.
Linguagem C
- Coeficientes de Resistividade Específica a 20°C – Referência Abrangente de Materiais
- Dominando Arrays em C#: Declaração, Inicialização e Operações
- Dominando Arrays Irregulares (Jagged Arrays) em C#: Declaração, Inicialização e Acesso
- Como Passar Arrays para Funções em C++: Guia Prático
- Técnicas de Cópia de Arrays em Java: Guia Completo
- Dominando a Interface NavigableSet do Java: Navegação, Ordenação e Exemplos Práticos
- 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
- MATLAB: Dominando Arrays Multidimensionais e Especiais