Conteúdo do Curso
Noções Básicas de C#
Noções Básicas de C#
Arrays Multidimensionais
Arrays também podem conter outros arrays em seu interior. Esses arrays são chamados de arrays multidimensionais. Eles são úteis quando queremos armazenar dados em forma tabular, com linhas e colunas, ou na forma de uma matriz.
Podemos declarar um array bidimensional usando a seguinte sintaxe:
main
datatype[][] arrayName = new datatype[lengthX, lengthY];
O array criado com a sintaxe acima terá comprimento (tamanho) igual a lengthX
e cada elemento será um array de tamanho lengthY
:
main
int[,] numbers = new int[3,3];
No exemplo acima, criamos uma nova matriz bidimensional de tamanho 3x3. Isso significa que ela pode armazenar 9
números inteiros. Podemos inicializar um array 2D utilizando a seguinte sintaxe:
main
datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };
Considere o exemplo com valores reais:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; // Displaying the array foreach (int number in numbers) { Console.Write(number + " "); } } } }
O exemplo acima é uma matriz 3x4 e pode armazenar 12 elementos. A ilustração a seguir mostra uma matriz 3x3 de forma visualizada:
A indexação em arrays multidimensionais é semelhante à dos arrays normais. Basta informar o índice da linha e o índice da coluna.
main
arrayName[row, column];
Por exemplo, se quisermos acessar o valor 6
do array numbers
(mostrado na ilustração), devemos acessar a segunda linha e a terceira coluna:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; Console.WriteLine(numbers[1, 2]); // Output: 7 } } }
Arrays de dimensões superiores também são possíveis adicionando vírgulas extras à sintaxe de declaração:
main
int[,,] myArray3D = new int[3, 4, 5]; int[,,,] myArray4D = new int[5, 4, 9, 10]; // Similarly more complex ones are possible as well using the same pattern
No código acima, myArray3D
terá 60
elementos (3x4x5), enquanto myArray4D
terá 1800
elementos (5x4x9x10).
A seguir, veja como inicializar um array 3D:
main
int[,,] numbers = { { {1, 2, 3}, { 4, 5, 6 }, {7, 8, 9} }, { {10, 11, 12}, {13, 14, 15}, {16, 17, 18} }, { {19, 20, 21}, {22, 23, 24}, {25, 26, 27} } };
Obrigado pelo seu feedback!