CodeGym /Cursos /C# SELF /Arrays bidimensionales

Arrays bidimensionales

C# SELF
Nivel 7 , Lección 4
Disponible

1. Introducción

Imagina un array normal como una caja larga de pizza, donde todas las porciones están en fila — rico, pero aburrido.

Ahora imagina un horario de trabajo o un tablero de ajedrez. Ahí ya todo está organizado en filas y columnas — o sea, en una tabla. Justo para eso sirven los arrays bidimensionales.

En la vida real, los arrays bidimensionales están por todas partes:

  • Tablas con sueldos de empleados (filas — empleados, columnas — meses).
  • Una imagen en pantalla (cada "celda" — color de un píxel, tiene dos coordenadas: X y Y).
  • Cálculos matriciales y procesamiento de datos.
  • Tablero de ajedrez o campo para tres en raya.

A veces a los arrays bidimensionales se les llama matriz (ese nombre viene de las mates).

Hay un montón de sitios donde como programador vas a necesitar un array bidimensional. Casi cualquier juego de mesa es un array bidimensional listo: «Ajedrez», «Damas», «Tres en Raya», «Batalla Naval»:

Arrays bidimensionales 2

El tablero de «Ajedrez» o «Batalla Naval» es tan perfecto para arrays bidimensionales que ni hecho a propósito, donde para las coordenadas de las casillas solo tienes que usar números. No «peón e2 → e4», sino «peón (4,1) → (4,3)». Así te va a resultar más fácil como programador.

2. Sintaxis para declarar arrays bidimensionales

Solo da miedo hasta que lo declaras por primera vez. Vamos paso a paso.

Regla general

tipo[,] nombreArray;
Declaración de un array bidimensional

Aquí la coma , dentro de los corchetes — no es un error del compilador después de una noche con café, sino que indica: el array es bidimensional.

Ejemplos

int[,] matriz;
double[,] tablaNotas;
string[,] tableroAjedrez;

Creando un array

Le damos tamaño: número de filas y columnas.

matriz = new int[3, 4]; // 3 filas, 4 columnas

Esto es una tabla 3x4: imagina una hoja de Excel con 3 filas y 4 columnas.

Puedes declarar la variable y crear el array bidimensional de una vez:

int[,] matriz = new int[3, 4];

Puedes inicializarlo directamente con valores (igual que con los unidimensionales):

int[,] ejemplo = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
// Tabla de 3 filas, 3 columnas
Inicialización de un array bidimensional con valores

Importante: TODAS las filas deben tener la misma longitud al inicializar así. No puedes hacer la primera fila de 3 elementos y la segunda de 2.

Esquema visual

┌─────┬─────┬─────┬─────┐
│  0  │  1  │  2  │  3  │  ← columnas (Columns)
├─────┼─────┼─────┼─────┤
│ 0,0 │0,1  │0,2  │0,3  │  ← fila 0 (Row 0)
├─────┼─────┼─────┼─────┤
│ 1,0 │1,1  │1,2  │1,3  │  ← fila 1 (Row 1)
├─────┼─────┼─────┼─────┤
│ 2,0 │2,1  │2,2  │2,3  │  ← fila 2 (Row 2)
└─────┴─────┴─────┴─────┘

Cada elemento se indica con un par de índices [fila, columna].

3. Indexación y acceso a los elementos

En un array bidimensional, para acceder a un elemento tienes que poner dos índices:

  • El primero — número de fila
  • El segundo — número de columna

matriz[1, 2] = 99;  // En la segunda fila (índice 1), tercera columna (índice 2)
Asignar valor a un elemento de un array bidimensional

Si eres de ajedrez, recuerda: la indexación empieza en cero. O sea, el primer elemento es [0, 0].

Escribir y leer

int[,] datos = new int[5, 2];
datos[1, 1] = 5;         // escribir
int valor = datos[1, 1]; // leer

Así se ve en la memoria:

Arrays bidimensionales

4. Rellenar un array bidimensional

Vamos a escribir un código que rellene una matriz con números del 1 al 12, para que veas cómo va la cosa.

int[,] matriz = new int[3, 4];
int valor = 1;

for (int fila = 0; fila < 3; fila++)
{
    for (int col = 0; col < 4; col++)
    {
        matriz[fila, col] = valor;
        valor++;
    }
}
Rellenar un array bidimensional con números en orden

Aquí el bucle exterior recorre las filas, el interior — las columnas.

Ilustración:

Después de ejecutar:
┌────┬────┬────┬────┐
│ 1  │ 2  │ 3  │ 4  │
├────┼────┼────┼────┤
│ 5  │ 6  │ 7  │ 8  │
├────┼────┼────┼────┤
│ 9  │10  │11  │12  │
└────┴────┴────┴────┘

5. Dimensiones: obtener el número de filas y columnas

Muchas veces necesitas saber el tamaño del array "al vuelo". En C# tienes el método GetLength() para eso.

int[,] matriz = new int[3, 4];

int filas = matriz.GetLength(0);    // número de filas (primera dimensión) - 3
int columnas = matriz.GetLength(1); // número de columnas (segunda dimensión) - 4

Console.WriteLine($"Filas: {filas}, Columnas: {columnas}");
Atención:

no lo confundas con Length — en un array bidimensional es el número total de todos los elementos (filas × columnas).

6. Mostrar un array bidimensional en pantalla

Para mostrar una tabla bidimensional normalmente usas dos bucles — es como dibujar un laberinto en la consola. Ejemplo:

for (int fila = 0; fila < matriz.GetLength(0); fila++)
{
    for (int col = 0; col < matriz.GetLength(1); col++)
    {
        Console.Write(matriz[fila, col] + "\t"); // "\t" — tabulación para que quede bonito
    }
    Console.WriteLine(); // salto de línea
}

Ejemplo de salida:

1	2	3	4	
5	6	7	8	
9	10	11	12	

Por cierto, aquí ya sabes cómo "dibujar" tablas chulas con solo un par de líneas de código!

7. Arrays multidimensionales

Y un dato curioso sobre arrays, que seguro ya te imaginas. Si puedes hacer un array bidimensional, ¿puedes hacer uno tridimensional?

Sí, puedes crear arrays de cualquier dimensión. A estos se les llama multidimensionales.

Cómo declarar arrays multidimensionales

Solo tienes que poner el número de dimensiones que quieras, separadas por comas:

int[,,,] matriz = new int[2, 3, 4, 5];
Declaración de un array de cuatro dimensiones

Aquí tenemos un array de cuatro dimensiones:

  • 2 elementos en la primera coordenada,
  • 3 — en la segunda,
  • 4 — en la tercera,
  • 5 — en la cuarta.

En memoria, ese array es como un gran “cubo” de datos, empaquetado uno tras otro.

Cómo acceder a los elementos

Accedes a un elemento poniendo todos los índices a la vez:

matriz[0, 1, 2, 3] = 42;
int valor = matriz[1, 2, 0, 4];
  • Los índices empiezan en cero, como siempre en C#.
  • En ese array hay en total 2 × 3 × 4 × 5 = 120 elementos.

Ejemplos prácticos de arrays multidimensionales

  • 2D — tablas, tableros de ajedrez, imágenes.
  • 3D — “cubos” en gráficos por ordenador, datos para cálculos científicos (por ejemplo, temperatura en distintos puntos del espacio y tiempo).
  • 4D y más — se usan poco, pero aparecen en mates avanzadas, simulaciones, machine learning y demás.
2
Tarea
C# SELF, nivel 7, lección 4
Bloqueada
Inicialización de un array bidimensional y mostrar sus elementos
Inicialización de un array bidimensional y mostrar sus elementos
2
Tarea
C# SELF, nivel 7, lección 4
Bloqueada
Suma de los elementos de las filas en un array bidimensional
Suma de los elementos de las filas en un array bidimensional
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION