JaggedArray o Matriz escalonada en C#

Los JaggedArray o matriz escalonada, aunque también denominado matriz de matrices, debido a que sus elementos son otros matrices de tamaños variables.

Este tipo de matriz también es dividido en dos tipos:

  • Elementos unidimensionales
  • Elementos multidimensionales

JaggedArray unidimensional

Los elementos de esta matriz con array simples, podemos representarlo como la imagen siguiente.

JaggedArray o Matriz escalonada en C#

Representemos la imagen anterior en código.

Podría interesarte Arrays o Matrices en C#  

Declaración

Podemos declararlas de dos formas, la primera distribuye en partes, iniciando con la inicialización.

int[][] jagged1 = new int[3][];
  • Este tipo de array después del tipo de dato se colocan dos pares de corchetes.
  • Después del new se colocan nuevamente el par de corchetes, en la primera se coloca el número de espacios del jagged.
  • El segundo permanece vacío, esto indica que es unidimensional.

Ahora hay que definir el número de espacios de cada uno de los arrays del jagged (para el ejemplo son 3).

jagged1[0] = new int[2];
jagged1[1] = new int[3];
jagged1[2] = new int[2];
  • Colocamos el jagged declarado y la posición de sus espacios.
  • Después del new establecemos el número de espacios de cada array que corresponde a la posición indicada.

Por último, agregamos los datos a los arrays del jagged de la siguiente manera.

jagged1[0] = new int[] { 6, 9 };
jagged1[1] = new int[] { 10, 25, 5 };
jagged1[2] = new int[] { 100, 50 };
  • Especificamos la posición del espacio del jagged.
  • Después del new establecemos los valores del array (el número de valores depende de la declaración anterior).

La segunda manera de declarar un jagged es resumida, veamos el código escrito anteriormente con esta forma.

int[][] jagged11 = new int[][] {
                new int[] { 6, 9 },
                new int[] { 10, 25, 5 },
                new int[] { 100, 50 }
            };
  • En la misma declaración del jagged se definen los arrays.
  • El número de espacios del jagged depende del número de array, por eso no se define al inicializar el jagged.

Obtener información

Ahora hay que obtener la información almacenada en los arrays del jagged, podemos hacerlo de esta manera.

int valor = jagged1[1][0];
Console.WriteLine(valor);
//R: 10
  • Seleccionamos el jagged declarado, en el primer par de corchetes especificamos la posición del espacio.
  • En el segundo par definimos la posición del dato dentro del array.

JaggedArray multidimensional

Los elementos de este tipo de matriz son array multidimensionales, como tablas o cubos; podría representarse como la imagen siguiente.

JaggedArray multidimensional

Vamos a representar la imagen anterior en código para su administración.

Declaración

Retomando la versión resumida de un jagged unidimensional, la declaración de este tipo de jagged puede ser como sigue.

int[][,] jagged2 = new int[3][,] {
                new int[,] {{ 3, 6 }, //Fila cero
                            { 10, 15 } //Fila uno
                           }, //Tabla cero
                new int[,] {{ 2, 5 }, //Fila cero
                            { 7, 14 }, //Fila uno
                            { 50, 55 } //Fila dos
                           }, //Tabla uno
                new int[,] {{ 1, 11 }, //Fila cero
                            { 45, 100 } //Fila uno
                           } //Tabla dos
            };
  • En el segundo par de corchetes del tipo de dato se coloca una coma entre estos (array 2D).
  • Después del new del jagged establecemos su número de espacios y corchetes vacíos con una coma.
  • Declaramos las tablas para cada espacio del jagged.

Obtener información

Ya que tenemos el jagged ahora obtengamos la información almacenada, podemos utilizar el código siguiente.

int valor = jagged2[1][1,1];
Console.WriteLine(valor);
//R: 14
  • En el primer par de corchetes la posición del espacio del jagged.
  • El segundo par define la posición del espacio dentro de la tabla.

Podría interesarte Crear DataTable manualmente en csharp (C#)  

Con estos ejemplos podemos observar el funcionamiento de los JaggedArray, visiblemente en una imagen y como codificarlo.

Puedes visualizar los resultados utilizando un proyecto de consola o cualquier otro proyecto que te permite mostrar en pantalla.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *