Contenido del Curso
Conceptos básicos de C#
Conceptos básicos de C#
Practicando Arreglos Multidimensionales
A veces es útil declarar constantes para indexar matrices multidimensionales. A continuación se muestra la matriz del cuestionario del último capítulo:
main
const int FRUITS = 0; const int VEGETABLES = 1; string[,] foods = { { "Apple", "Apricot", "Banana", "Grapes", "Lime" }, // fruits { "Tomato", "Cabbage", "Carrot", "Pumpkin", "Broccoli" }, // vegetables };
Hemos creado dos constantes FRUITS
y VEGETABLES
con valores 0
y 1
, representando las filas 0
para frutas, y 1
para vegetales en la matriz foods
.
Así que si necesitamos acceder al elemento "Cabbage" de los vegetales, simplemente podemos escribir:
main
foods[VEGETABLES][1];
Este truco podría no ser muy útil en matrices más pequeñas como esta misma, sin embargo, al tratar con matrices más complejas, constantes como estas pueden ayudar a acceder fácilmente a los elementos de la matriz para que no necesitemos memorizar qué fila contiene qué elementos, en caso de que hayamos categorizado elementos en filas.
Ahora el desafío es crear una matriz 2D de tipo string
y nombre productOptions
, con una forma de 4x3 (4 filas, 3 columnas). Inicialízala con los siguientes datos:
Fila 1: "Rojo", "Verde", "Blanco" Fila 2: "Cuadrado", "Rectángulo", "Esfera" Fila 3: "Grueso", "Medio", "Delgado" Fila 4: "Impreso", "Hecho a mano", "Ninguno"
Accede al elemento "Hecho a mano" mediante indexación y muéstralo. Usa la variable constante relevante para eso.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { const int COLOR = 0; const int SHAPE = 1; const int WIDTH = 2; const int DESIGN = 3; // Create the array below _______ = { _______ }; // Reference the relevant element in the WriteLine statement Console.WriteLine(productOptions[DESIGN, 1]); Console.WriteLine(productOptions[COLOR, 2]); Console.WriteLine(productOptions[SHAPE, 0]); Console.WriteLine(productOptions[WIDTH, 1]); } } }
- Para declarar un arreglo multidimensional, agregamos comas dentro de los corchetes (
[]
) dependiendo de las dimensiones del arreglo.
Por ejemplo, un arreglo entero 3D se declararía como int[,,] arrayName = { ... };
.
2. Es válido usar valores de variables o constantes en la indexación.
Por ejemplo, si tenemos un arreglo int[] exampleArray = { 1, 2, 3, 4, 5 };
y una constante const int someIndex = 2
, es válido escribir exampleArray[someIndex]
para acceder al elemento 3 del arreglo.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { const int COLOR = 0; const int SHAPE = 1; const int WIDTH = 2; const int DESIGN = 3; // Create the array below string[,] productOptions = { { "Red", "Green", "White" }, { "Square", "Rectangle", "Sphere" }, { "Thick", "Medium", "Thin" }, { "Printed", "Crafted", "None" } }; // Reference the relevant element in the WriteLine statement Console.WriteLine(productOptions[DESIGN, 1]); Console.WriteLine(productOptions[COLOR, 2]); Console.WriteLine(productOptions[SHAPE, 0]); Console.WriteLine(productOptions[WIDTH, 1]); } } }
¡Gracias por tus comentarios!