Conteúdo do Curso
Noções Básicas de C#
Noções Básicas de C#
Praticando Matrizes Multidimensionais
Às vezes, é útil declarar constantes para indexar arrays multidimensionais. A seguir está o array do quiz do ú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 };
Criamos duas constantes FRUITS
e VEGETABLES
com valores 0
e 1
, representando as linhas 0
para frutas e 1
para vegetais no array foods
.
Portanto, se precisarmos acessar o elemento "Cabbage" dos vegetais, podemos simplesmente escrever:
main
foods[VEGETABLES][1];
Este truque pode não ser muito útil em arrays menores como este em si, no entanto, ao lidar com arrays mais complexos, constantes como estas podem ajudar a acessar facilmente itens do array para que não precisemos memorizar qual linha contém quais itens - no caso de termos itens categorizados em linhas.
Agora o desafio é criar um array 2D do tipo string
e nome productOptions
, com uma forma de 4x3 (4 linhas, 3 colunas). Inicialize-o com os seguintes dados:
Linha 1: "Red", "Green", "White" Linha 2: "Square", "Rectangle", "Sphere" Linha 3: "Thick", "Medium", "Thin" Linha 4: "Printed", "Crafted", "None"
Acesse o elemento "Crafted" via indexação e exiba-o. Use a variável constante relevante para isso.
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 um array multidimensional, adicionamos vírgulas dentro dos colchetes (
[]
) dependendo das dimensões do array.
Por exemplo, um array de inteiros 3D seria declarado como int[,,] arrayName = { ... };
.
2. É válido usar valores de variáveis ou constantes na indexação.
Por exemplo, se tivermos um array int[] exampleArray = { 1, 2, 3, 4, 5 };
e uma constante const int someIndex = 2
, é válido escrever exampleArray[someIndex]
para acessar o elemento 3 do Array.
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]); } } }
Obrigado pelo seu feedback!