Saltar al contenido

Declarar y consumir conjuntos multidimensionales y dentados

Declaración de Array

La sintaxis general para declarar una matriz multidimensional es:

1 tipo [,,...] arrayName =new type [n1,n2,...];

csharp

Declarar y consumir conjuntos multidimensionales y dentados
Declarar y consumir conjuntos multidimensionales y dentados

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.