Conteúdo do Curso
Noções Básicas de C#
Noções Básicas de C#
Arrays Multidimensionais
Arrays também podem ter arrays adicionais dentro deles. Esses arrays são chamados de Arrays Multidimensionais. Eles são úteis quando queremos armazenar os dados em uma 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 usando a sintaxe acima terá o comprimento (tamanho) igual a lengthX
e cada elemento será um array de tamanho lengthY
. Por exemplo:
main
int[,] numbers = new int[3,3];
No caso acima, criamos uma nova matriz bidimensional de tamanho 3x3. Isso significa que ela pode conter 9
números inteiros. Podemos inicializar um array 2D usando a seguinte sintaxe:
main
datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };
Consider the example with real values:
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 + " "); } } } }
The above is a 3x4 matrix and it can store 12 elements. The following illustration shows a 3x3 matrix in a visualized form:
Indexing in multidimensional arrays is similar to the normal arrays. We simply mention the row and the column index.
main
arrayName[row, column];
For example, if we want to access 6
from the numbers
array (shown in the illustration), we will access the 2nd row and the 3rd column:
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 } } }
Higher dimensional arrays are also possible by adding extra commas to the declaration syntax:
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
In the above code myArray3D
will have 60
elements (3x4x5), while myArray4D
will have 1800
elements (5x4x9x10).
Following is how you would initialize a 3D array:
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!