C# Arreglos multidimensionales
Arreglos multidimensionales
En el capítulo anterior, aprendiste sobre las matrices, que también se conocen como matrices de una sola dimensión. Estos son geniales y son algo que usará mucho mientras programa en C#. Sin embargo, si desea almacenar datos en forma tabular, como una tabla con filas y columnas, debe familiarizarse con las matrices multidimensionales.
Una matriz multidimensional es básicamente una matriz de matrices.
Las matrices pueden tener cualquier cantidad de dimensiones. Los más comunes son los arreglos bidimensionales (2D).
Matrices bidimensionales
Para crear una matriz 2D, agregue cada matriz dentro de su propio conjunto de llaves e inserte una coma (,
) dentro de los corchetes:
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Es bueno saberlo: La coma simple [,]
especifica que la matriz es bidimensional. Una matriz tridimensional tendría dos comas: int[,,]
.
numbers
ahora es una matriz con dos matrices como elementos. El primer elemento de la matriz contiene tres elementos: 1, 4 y 2, mientras que el segundo elemento de la matriz contiene 3, 6 y 8. Para visualizarlo, piense en la matriz como una tabla con filas y columnas:
COLUMNA 0 | COLUMNA 1 | COLUMNA 2 | |
---|---|---|---|
FILA 0 | 1 | 4 | 2 |
FILA 1 | 3 | 6 | 8 |
Acceder a elementos de una matriz 2D
Para acceder a un elemento de una matriz bidimensional, debe especificar dos índices: uno para la matriz y otro para el elemento dentro de esa matriz. O mejor aún, teniendo en cuenta la visualización de la tabla; uno para la fila y otro para la columna (ver ejemplo a continuación).
Esta declaración accede al valor del elemento en la primera fila (0) y la tercera columna (2) del números
matriz:
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]); // Salidas 2
Recuerde que: Los índices de matriz comienzan con 0: [0] es el primer elemento. [1] es el segundo elemento, etc.
Cambiar elementos de una matriz 2D
También puedes cambiar el valor de un elemento.
El siguiente ejemplo cambiará el valor del elemento en la primera fila (0) y la primera columna (0):
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5; // Cambiar valor a 5
Console.WriteLine(numbers[0, 0]); // Salidas 5 instead of 1
Recorrer una matriz 2D
Puedes recorrer fácilmente los elementos de una matriz bidimensional con un bucle foreach
:
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
También puedes utilizar un bucle for. Para matrices multidimensionales, necesita un bucle para cada una de las dimensiones de la matriz.
Tenga en cuenta también que tenemos que usar GetLength()
en lugar de Length
para especificar cuántas veces el bucle debe ejecutarse:
Ejemplo
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
{
Console.WriteLine(numbers[i, j]);
}
}