Acceso a elementos de arrays 2D
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 3 de 66.
Acceder a los elementos de un array 2D utiliza una sintaxis similar a la de los arrays normales, pero requiere dos índices: uno para la fila y otro para la columna.
Nota: En C#, existen dos tipos de arrays multidimensionales: arrays rectangulares (int[,]) y arrays dentados (int[][]). Esta lección trata sobre los arrays dentados, donde cada fila es su propio array.
Crea un array escalonado con 3 filas y 4 columnas:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Asigna un valor a una posición específica (índice de fila 1, índice de columna 2):
grid[1][2] = 42;Lee un valor de una posición específica (índice de fila 0, índice de columna 3):
int value = grid[0][3];Como los índices comienzan en 0, el índice de fila 0 es la 1.ª fila y el índice de columna 3 es la 4.ª columna.
Recuerda que los índices del array comienzan en 0, por lo que los rangos de índices válidos son:
- Filas: del índice 0 al 2 (para un array de 3 filas: la 1.ª fila tiene el índice 0, la 2.ª tiene el índice 1 y la 3.ª tiene el índice 2)
- Columnas: del índice 0 al 3 (para un array de 4 columnas: la 1.ª columna tiene el índice 0, la 2.ª tiene el índice 1, y así sucesivamente)
grid[3][2]), obtendrás una IndexOutOfRangeException.Desafío
IntermedioEscribe un método llamado getElement que acepte tres argumentos:
- Una matriz de enteros 2D (
int[][] matrix) - Un índice de fila (
int row) - Un índice de columna (
int col)
El método debe devolver el elemento en la posición especificada si los índices son válidos. Si alguno de los índices está fuera de rango, el método debe devolver -1.
Pruébalo tú mismo
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// Escribe tu código aquí
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online