En mi anterior post hablaba sobre cómo definir matrices multidimensionales en .NET. Lo cierto es que hay una forma alternativa de hacerlo que tiene ventajas de rendimiento y de características y que está totalmente soportada por el compilador: las matrices escalonadas.

Entre otras cosas cambia la sintaxis y además nos permite definir matrices multidimensionales con diferentes tamaños en cada dimensión (en el modo normal son matrices rectangulares).

Estas matrices escalonadas son verdaderamente "matrices de matrices", tal y como comentñe en el post anterior.

Estas matrices én realidad sólo tienen una dimensión y cada elemento de las mismas es una matriz. Realmente lo que se hace es definir una matriz lineal normal y a cada elemento asignarle a su vez otra matriz, así por ejemplo:

Dim jArr As Integer()() = {
    New Integer() {1, 2, 3, 4}, _
    New Integer() {5, 6, 7}, _
    New Integer() {8, 9}, _
    New Integer() {10, 11, 12}, _
    New Integer() {13} 
}

De esta forma defines una verdadera matriz de matrices. Así, cada fila como se puede ver tiene diferente tamaño (la primera 4 elementos, la segunda 3, la tercera 2, la cuarta 3 y la quinta sólo 1).

Es importante fijarse en cómo se han definido dos paréntesis para acceder a los elementos, y no uno separado por comas como estamos acostumbrados. Ahora para acceder a un elemento escribiríamos:

Console.WriteLine( jArr(1)(2) )

que en este caso devuelve el tercer elemento de la segunda fila, o sea, un 7.

Espero que os resulte útil.

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA