Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Flerdimensionella Arrayer | Arrayer
C#-Grunder

bookUtmaning: Flerdimensionella Arrayer

Det är ibland användbart att deklarera konstanter för att indexera flerdimensionella arrayer. Följande är arrayen från förra kapitlets quiz:

main.cs

main.cs

copy
1234567
const int FRUITS = 0; const int VEGETABLES = 1; string[,] foods = { { "Apple", "Apricot", "Banana", "Grapes", "Lime" }, // fruits { "Tomato", "Cabbage", "Carrot", "Pumpkin", "Broccoli" }, // vegetables };

Vi har skapat två konstanter FRUITS och VEGETABLES med värdena 0 och 1, som representerar raderna 0 för frukt och 1 för grönsaker i arrayen foods.

Om vi behöver komma åt elementet "Cabbage" från grönsaker kan vi helt enkelt skriva:

main.cs

main.cs

copy
1
foods[VEGETABLES][1];

Detta knep är kanske inte så användbart i mindre arrayer som denna, men när man arbetar med mer komplexa arrayer kan konstanter som dessa hjälpa till att enkelt komma åt element från arrayen så att vi inte behöver memorera vilken rad som innehåller vilka element – särskilt om vi har kategoriserat element i rader.

Nu är utmaningen att skapa en 2D-array av typen string med namnet productOptions, med en 4x3 struktur (4 rader, 3 kolumner). Initiera den med följande data:

  • Rad 1: "Red", "Green", "White";
  • Rad 2: "Square", "Rectangle", "Sphere";
  • Rad 3: "Thick", "Medium", "Thin";
  • Rad 4: "Printed", "Crafted", "None".

Hämta elementet "Crafted" via indexering och skriv ut det. Använd den relevanta konstantvariabeln för detta.

main.cs

main.cs

copy
123456789101112131415161718192021222324
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]); } } }
  1. För att deklarera en multidimensionell array lägger vi till kommatecken inuti hakparenteserna ([]) beroende på arrayens dimensioner. Till exempel skulle en 3D heltalsarray deklareras som int[,,] arrayName = { ... };.
  2. Det är giltigt att använda variabel- eller konstantvärden vid indexering. Till exempel, om vi har en array int[] exampleArray = { 1, 2, 3, 4, 5 }; och en konstant const int someIndex = 2, är det giltigt att skriva exampleArray[someIndex] för att komma åt elementet 3 från arrayen.
main.cs

main.cs

copy
123456789101112131415161718192021222324252627
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]); } } }

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you show me how to declare the constants for the rows in this new array?

What would the code look like to access and print the "Crafted" element using a constant?

Can you explain why using constants for indexing is helpful in larger arrays?

Awesome!

Completion rate improved to 1.59

bookUtmaning: Flerdimensionella Arrayer

Svep för att visa menyn

Det är ibland användbart att deklarera konstanter för att indexera flerdimensionella arrayer. Följande är arrayen från förra kapitlets quiz:

main.cs

main.cs

copy
1234567
const int FRUITS = 0; const int VEGETABLES = 1; string[,] foods = { { "Apple", "Apricot", "Banana", "Grapes", "Lime" }, // fruits { "Tomato", "Cabbage", "Carrot", "Pumpkin", "Broccoli" }, // vegetables };

Vi har skapat två konstanter FRUITS och VEGETABLES med värdena 0 och 1, som representerar raderna 0 för frukt och 1 för grönsaker i arrayen foods.

Om vi behöver komma åt elementet "Cabbage" från grönsaker kan vi helt enkelt skriva:

main.cs

main.cs

copy
1
foods[VEGETABLES][1];

Detta knep är kanske inte så användbart i mindre arrayer som denna, men när man arbetar med mer komplexa arrayer kan konstanter som dessa hjälpa till att enkelt komma åt element från arrayen så att vi inte behöver memorera vilken rad som innehåller vilka element – särskilt om vi har kategoriserat element i rader.

Nu är utmaningen att skapa en 2D-array av typen string med namnet productOptions, med en 4x3 struktur (4 rader, 3 kolumner). Initiera den med följande data:

  • Rad 1: "Red", "Green", "White";
  • Rad 2: "Square", "Rectangle", "Sphere";
  • Rad 3: "Thick", "Medium", "Thin";
  • Rad 4: "Printed", "Crafted", "None".

Hämta elementet "Crafted" via indexering och skriv ut det. Använd den relevanta konstantvariabeln för detta.

main.cs

main.cs

copy
123456789101112131415161718192021222324
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]); } } }
  1. För att deklarera en multidimensionell array lägger vi till kommatecken inuti hakparenteserna ([]) beroende på arrayens dimensioner. Till exempel skulle en 3D heltalsarray deklareras som int[,,] arrayName = { ... };.
  2. Det är giltigt att använda variabel- eller konstantvärden vid indexering. Till exempel, om vi har en array int[] exampleArray = { 1, 2, 3, 4, 5 }; och en konstant const int someIndex = 2, är det giltigt att skriva exampleArray[someIndex] för att komma åt elementet 3 från arrayen.
main.cs

main.cs

copy
123456789101112131415161718192021222324252627
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]); } } }

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 6
some-alt