Declaración de Array
La sintaxis general para declarar una matriz multidimensional es:
1 tipo [,,...] arrayName =new type [n1,n2,...];
csharp
Aquí, type es el tipo de datos de la matriz, arrayName es el nombre de la matriz, y n1,n2 son las dimensiones.
El tipo más común de matriz multidimensional es una matriz bidimensional.
1int[,] myArray =newint[6,3];
csharp
Del mismo modo, podemos declarar una matriz tridimensional.
1int[,,] myArray =newint[3,3,3];
csharp
Inicialización de la matriz
Podemos inicializar una matriz multidimensional de la siguiente manera:
12345string[,] tasks =newstring[3,2]{{{"Task00", "Task01"},{"Task10", "Task11"},{"Task20", "Task21"}};
csharp
12345int[,,] nums =newint[3,2,2]{{{{{1,2},{3,4}}, {{{5,6},{7,8}}, {{{9,10},{11,12}},};
csharp
También podemos inicializar una matriz sin especificar sus dimensiones.
1234int[,] myArray ={{{{3,4},{5,6}};
csharp
Para acceder a los elementos de una matriz multidimensional podemos especificar los valores de los índices de la siguiente manera:
1myArray[1,2];
csharp
Una matriz multidimensional también se llama matriz rectangular. Lo más probable es que utilices matrices bidimensionales en tu programa o, si estás trabajando en un software de modelado que requiere objetos tridimensionales, puede que también necesites matrices tridimensionales, pero es muy improbable que utilices una matriz con más de 3 dimensiones.
Echemos un vistazo a un ejemplo, donde necesitamos almacenar las coordenadas de cinco lugares.
Podemos almacenar las coordenadas en una matriz de la siguiente manera:
1234567int[,] coords =newint[5,2]{{43,29},{48,12},{145,54},{123,612},{12,78}};
csharp
También podemos inicializar usando la sintaxis de la taquigrafía.
1234567int[,] coords ={{{43,29},{48,12},{145,54},{123,612},{12,78}};
csharp
Ejemplo
Para acceder a todas las coordenadas tendremos que pasar por la matriz. Echa un vistazo al código completo.
12345678910111213141516171819202122232425 usando el Sistema;namespace multidarray{classProgram{estaticvoidMain(string[] args){int[,] coords ={{{43,29},{48,12},{145,54},{123,612},{12,78}}; para(int i =0; i <5; i++){para(int j =0; j <2; j++){ Consola. Escribe(coords[i,j]+" ");} Consola. WriteLine();}}}
csharp
Resultados:
1234543 2948 12145 54123 61212 78
consola
Hagámoslo aún más interesante. Considere: tenemos que dibujar líneas en el mapa uniendo las coordenadas, para ello necesitaremos una matriz tridimensional que almacenará un par de coordenadas.
123456789101112131415161718192021222324252627 usando el sistema; namespace multidarray{classProgram{estaticvoidMain(string[] args){int[,,] lines ={{{{43,29},{34,67}},{{56,95},{48,12}},{{145,54},{26,69}},{{56,21},{123,612}},{{12,78},{111,37}}; para(int i =0; i <5; i++){para(int j =0; j <2; j++){para(int k =0; k <2; k++) Consola. Escriba(líneas[i,j,k]+" "); Consola. Escriba("t");} Consola.WriteLine();}}}
csharp
Resultados:
1234543 29 34 6756 95 48 12145 54 26 6956 21 123 61212 78 111 37
consola
Los conjuntos multidimensionales son grandes cuando conocemos la longitud de cada elemento. Por ejemplo, en los ejemplos anteriores, sabíamos que la longitud de cada coordenada sería 2. ¿Pero qué pasa si necesitamos almacenar elementos de longitud variable. No te preocupes, C# también te cubre para eso.