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.