Resumo : neste tutorial, você aprenderá sobre arrays multidimensionais C#, incluindo arrays 2D e 3D.
Introdução aos arrays multidimensionais C#
No tutorial de array , você aprendeu como criar um array com uma dimensão. C# permite definir um array com múltiplas dimensões.
Quando um array tem mais de uma dimensão, ele é chamado de array multidimensional.
O exemplo a seguir declara um array bidimensional (ou array 2D) de duas linhas e três colunas
int [,] matrix = new int[2, 3];
Linguagem de código: C# ( cs )
A vírgula ( ,
) entre colchetes indica o número de dimensões. Se você quiser declarar um array tridimensional (ou array 3D), você pode usar duas vírgulas ( ,
) assim:
int[,,] tensor = new int[3, 3, 3];
Linguagem de código: C# ( cs )
Inicializando matrizes multidimensionais C#
O exemplo a seguir mostra como inicializar um array bidimensional com duas linhas e três colunas:
int[,] matrix = new int[2, 3] {
{ 1, 2, 3 },
{ 4, 5, 6 },
};
Linguagem de código: C# ( cs )
Ou você pode torná-lo mais curto, mas menos óbvio assim:
int[,] matrix = {
{ 1, 2, 3 },
{ 4, 5, 6 },
};
Linguagem de código: C# ( cs )
E o exemplo a seguir mostra como inicializar um array de três dimensões 2, 2 e 3:
int[,,] tensor = new int[2,2,3] {
{ { 1, 2, 3 }, { 4, 5, 6 } },
{ { 7, 8, 9 }, { 10, 11, 12 } }
};
Linguagem de código: C# ( cs )
É igual ao seguinte:
int[,,] tensor = {
{ { 1, 2, 3 }, { 4, 5, 6 } },
{ { 7, 8, 9 }, { 10, 11, 12 } }
};
Linguagem de código: C# ( cs )
Acessando elementos do array
Para acessar um elemento na matriz multidimensional, você usa uma lista de dimensões separadas por vírgulas entre colchetes. A primeira dimensão começa em zero.
Por exemplo, o exemplo a seguir acessa a linha 0, coluna 1 de uma matriz bidimensional:
array2D[0,1]
Linguagem de código: C# ( cs )
Da mesma forma, você pode especificar as dimensões em uma matriz 3D como esta:
array3D[0,1,2]
Linguagem de código: C# ( cs )
O exemplo a seguir mostra como acessar os elementos na linha 0, coluna 0, linha 1 e coluna 2 de uma matriz 2D:
int[,] matrix = {
{1,2,3},
{4,5,6},
{7,8,9},
};
// row 0 column 0
Console.WriteLine(matrix[0, 0]); // 1
// row 1 column 2
Console.WriteLine(matrix[1, 2]); // 6
Linguagem de código: C# ( cs )
Saída:
1
6
Linguagem de código: C# ( cs )
Obtendo o comprimento da dimensão
O método GetLength de uma matriz retorna o comprimento de uma dimensão. A primeira dimensão começa em zero. O exemplo a seguir declara um array 2D, inicializa seus elementos e envia todos os elementos para o console:
int[,] matrix = new int[3, 3];
// assign integers to the 2D array
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
matrix[i, j] = i + j;
}
}
// output the 2D array
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write($"{matrix[i, j]}");
Console.Write(j < matrix.GetLength(1) - 1 ? "," : "");
}
Console.WriteLine();
}
Linguagem de código: C# ( cs )
Saída:
0,1,2
1,2,3
2,3,4
Linguagem de código: C# ( cs )
Resumo
- Uma matriz multidimensional é uma matriz com mais de uma dimensão.