C #: matrices multidimensionales

C # permite matrices multidimensionales. Las matrices multidimensionales también se denominan matriz rectangular. Puede declarar una matriz bidimensional de cadenas como:

string [,] names;

o, una matriz tridimensional de variables int como -

int [ , , ] m;

Matrices bidimensionales

La forma más simple de la matriz multidimensional es la matriz bidimensional. Una matriz bidimensional es una lista de matrices unidimensionales.

Una matriz bidimensional se puede considerar como una tabla, que tiene x número de filas y y número de columnas. A continuación se muestra una matriz bidimensional, que contiene 3 filas y 4 columnas:

Por lo tanto, cada elemento de la matriz a se identifica mediante un nombre de elemento de la forma a [i, j], donde a es el nombre de la matriz e i y j son los subíndices que identifican de forma única cada elemento de la matriz a.

Inicialización de matrices bidimensionales

Las matrices multidimensionales se pueden inicializar especificando valores entre corchetes para cada fila. La siguiente matriz tiene 3 filas y cada fila tiene 4 columnas.

int [,] a = new int [3,4] {
   {0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */
   {4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */
   {8, 9, 10, 11}   /*  initializers for row indexed by 2 */
};

Acceso a elementos de matriz bidimensionales

Se accede a un elemento en una matriz bidimensional utilizando los subíndices. Es decir, índice de fila e índice de columna de la matriz. Por ejemplo,

int val = a[2,3];

La declaración anterior toma el cuarto elemento de la tercera fila de la matriz. Puedes verificarlo en el diagrama anterior. Comprobemos el programa para manejar una matriz bidimensional -

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         /* an array with 5 rows and 2 columns*/
         int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 5; i++) {
            
            for (j = 0; j < 2; j++) {
               Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
            }
         }
         Console.ReadKey();
      }
   }
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8