Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Flerdimensjonale Matriser | Arrayer
C#-Grunnleggende

bookFlerdimensjonale Matriser

Arrayer kan også inneholde andre arrayer. Slike arrayer kalles flerdimensjonale arrayer. Disse er nyttige når vi ønsker å lagre data i tabellform, med rader og kolonner, eller som en matrise.

Vi kan deklarere en todimensjonal array ved å bruke følgende syntaks:

main.cs

main.cs

copy
1
datatype[][] arrayName = new datatype[lengthX, lengthY];

Arrayen som opprettes med syntaksen over vil ha lengde (størrelse) lik lengthX, og hvert element vil være en array med størrelse lengthY:

main.cs

main.cs

copy
1
int[,] numbers = new int[3,3];

I eksempelet ovenfor oppretter vi en ny todimensjonal matrise med størrelse 3x3. Det betyr at den kan lagre 9 heltall. Vi kan initialisere et 2D-array ved å bruke følgende syntaks:

main.cs

main.cs

copy
12345
datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };

Vurder eksempelet med reelle verdier:

main.cs

main.cs

copy
12345678910111213141516171819202122
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; // Displaying the array foreach (int number in numbers) { Console.Write(number + " "); } } } }

Ovenfor er en 3x4-matrise, og den kan lagre 12 elementer. Følgende illustrasjon viser en 3x3-matrise i visualisert form:

Indeksering i flerdimensjonale matriser ligner på vanlige matriser. Vi angir ganske enkelt rad- og kolonneindeksen.

main.cs

main.cs

copy
1
arrayName[row, column];

For eksempel, hvis vi ønsker å hente verdien 6 fra numbers-matrisen (vist i illustrasjonen), bruker vi elementet på indeks [2][2], som tilsvarer andre radindeks og andre kolonneindeks.

main.cs

main.cs

copy
123456789101112131415161718
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; Console.WriteLine(numbers[1, 2]); // Output: 7 } } }

Høyere-dimensjonale matriser er også mulig ved å legge til ekstra kommaer i deklarasjonssyntaksen:

main.cs

main.cs

copy
123
int[,,] myArray3D = new int[3, 4, 5]; int[,,,] myArray4D = new int[5, 4, 9, 10]; // Similarly more complex ones are possible as well using the same pattern

I koden ovenfor vil myArray3D ha 60 elementer (3x4x5), mens myArray4D vil ha 1800 elementer (5x4x9x10).

Slik initialiserer du et 3D-array:

main.cs

main.cs

copy
123456
int[,,] numbers = { { {1, 2, 3}, { 4, 5, 6 }, {7, 8, 9} }, { {10, 11, 12}, {13, 14, 15}, {16, 17, 18} }, { {19, 20, 21}, {22, 23, 24}, {25, 26, 27} } };
question mark

Hva er riktig kode for å få tilgang til "Pumpkin"-elementet fra foods-arrayet:

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain how to access elements in a 3D array?

What are some practical uses for higher dimensional arrays?

Can you show an example of initializing a 4D array?

Awesome!

Completion rate improved to 1.59

bookFlerdimensjonale Matriser

Sveip for å vise menyen

Arrayer kan også inneholde andre arrayer. Slike arrayer kalles flerdimensjonale arrayer. Disse er nyttige når vi ønsker å lagre data i tabellform, med rader og kolonner, eller som en matrise.

Vi kan deklarere en todimensjonal array ved å bruke følgende syntaks:

main.cs

main.cs

copy
1
datatype[][] arrayName = new datatype[lengthX, lengthY];

Arrayen som opprettes med syntaksen over vil ha lengde (størrelse) lik lengthX, og hvert element vil være en array med størrelse lengthY:

main.cs

main.cs

copy
1
int[,] numbers = new int[3,3];

I eksempelet ovenfor oppretter vi en ny todimensjonal matrise med størrelse 3x3. Det betyr at den kan lagre 9 heltall. Vi kan initialisere et 2D-array ved å bruke følgende syntaks:

main.cs

main.cs

copy
12345
datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };

Vurder eksempelet med reelle verdier:

main.cs

main.cs

copy
12345678910111213141516171819202122
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; // Displaying the array foreach (int number in numbers) { Console.Write(number + " "); } } } }

Ovenfor er en 3x4-matrise, og den kan lagre 12 elementer. Følgende illustrasjon viser en 3x3-matrise i visualisert form:

Indeksering i flerdimensjonale matriser ligner på vanlige matriser. Vi angir ganske enkelt rad- og kolonneindeksen.

main.cs

main.cs

copy
1
arrayName[row, column];

For eksempel, hvis vi ønsker å hente verdien 6 fra numbers-matrisen (vist i illustrasjonen), bruker vi elementet på indeks [2][2], som tilsvarer andre radindeks og andre kolonneindeks.

main.cs

main.cs

copy
123456789101112131415161718
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; Console.WriteLine(numbers[1, 2]); // Output: 7 } } }

Høyere-dimensjonale matriser er også mulig ved å legge til ekstra kommaer i deklarasjonssyntaksen:

main.cs

main.cs

copy
123
int[,,] myArray3D = new int[3, 4, 5]; int[,,,] myArray4D = new int[5, 4, 9, 10]; // Similarly more complex ones are possible as well using the same pattern

I koden ovenfor vil myArray3D ha 60 elementer (3x4x5), mens myArray4D vil ha 1800 elementer (5x4x9x10).

Slik initialiserer du et 3D-array:

main.cs

main.cs

copy
123456
int[,,] numbers = { { {1, 2, 3}, { 4, 5, 6 }, {7, 8, 9} }, { {10, 11, 12}, {13, 14, 15}, {16, 17, 18} }, { {19, 20, 21}, {22, 23, 24}, {25, 26, 27} } };
question mark

Hva er riktig kode for å få tilgang til "Pumpkin"-elementet fra foods-arrayet:

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 5
some-alt