Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Moniulotteiset Taulukot | Taulukot
C# Perusteet

bookMoniulotteiset Taulukot

Taulukot voivat sisältää myös muita taulukoita. Tällaisia taulukoita kutsutaan moniulotteisiksi taulukoiksi. Ne ovat hyödyllisiä, kun halutaan tallentaa tietoa taulukkomuodossa, riveinä ja sarakkeina, tai matriisin muodossa.

Voimme määritellä kaksiulotteisen taulukon seuraavalla syntaksilla:

main.cs

main.cs

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

Yllä olevalla syntaksilla luodulla taulukolla on pituus (koko) lengthX, ja jokainen alkio on taulukko, jonka koko on lengthY:

main.cs

main.cs

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

Yllä olevassa tapauksessa luodaan uusi kaksiulotteinen matriisi, jonka koko on 3x3. Tämä tarkoittaa, että se voi sisältää 9 kokonaislukua. Kaksiulotteinen taulukko voidaan alustaa seuraavalla syntaksilla:

main.cs

main.cs

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

Tarkastellaan esimerkkiä, jossa on todellisia arvoja:

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 + " "); } } } }

Yllä oleva on 3x4-matriisi, ja siihen voidaan tallentaa 12 alkiota. Seuraava kuva havainnollistaa 3x3-matriisia visuaalisessa muodossa:

Indeksointi moniulotteisissa taulukoissa on samanlaista kuin tavallisissa taulukoissa. Ilmoitetaan yksinkertaisesti rivin ja sarakkeen indeksi.

main.cs

main.cs

copy
1
arrayName[row, column];

Esimerkiksi, jos halutaan hakea arvon 6 taulukosta numbers (kuten kuvassa), käytetään alkiota indeksissä [2][2], joka vastaa toista rivi-indeksiä ja toista sarake-indeksiä.

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 } } }

Korkeamman ulottuvuuden taulukot ovat myös mahdollisia lisäämällä ylimääräisiä pilkkuja määrittelysyntaksiin:

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

Yllä olevassa koodissa myArray3D sisältää 60 alkiota (3x4x5), kun taas myArray4D sisältää 1800 alkiota (5x4x9x10).

Seuraavassa esimerkki 3-ulotteisen taulukon alustamisesta:

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

Mikä on oikea koodi "Pumpkin"-alkion hakemiseen foods-taulukosta:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 1.59

bookMoniulotteiset Taulukot

Pyyhkäise näyttääksesi valikon

Taulukot voivat sisältää myös muita taulukoita. Tällaisia taulukoita kutsutaan moniulotteisiksi taulukoiksi. Ne ovat hyödyllisiä, kun halutaan tallentaa tietoa taulukkomuodossa, riveinä ja sarakkeina, tai matriisin muodossa.

Voimme määritellä kaksiulotteisen taulukon seuraavalla syntaksilla:

main.cs

main.cs

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

Yllä olevalla syntaksilla luodulla taulukolla on pituus (koko) lengthX, ja jokainen alkio on taulukko, jonka koko on lengthY:

main.cs

main.cs

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

Yllä olevassa tapauksessa luodaan uusi kaksiulotteinen matriisi, jonka koko on 3x3. Tämä tarkoittaa, että se voi sisältää 9 kokonaislukua. Kaksiulotteinen taulukko voidaan alustaa seuraavalla syntaksilla:

main.cs

main.cs

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

Tarkastellaan esimerkkiä, jossa on todellisia arvoja:

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 + " "); } } } }

Yllä oleva on 3x4-matriisi, ja siihen voidaan tallentaa 12 alkiota. Seuraava kuva havainnollistaa 3x3-matriisia visuaalisessa muodossa:

Indeksointi moniulotteisissa taulukoissa on samanlaista kuin tavallisissa taulukoissa. Ilmoitetaan yksinkertaisesti rivin ja sarakkeen indeksi.

main.cs

main.cs

copy
1
arrayName[row, column];

Esimerkiksi, jos halutaan hakea arvon 6 taulukosta numbers (kuten kuvassa), käytetään alkiota indeksissä [2][2], joka vastaa toista rivi-indeksiä ja toista sarake-indeksiä.

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 } } }

Korkeamman ulottuvuuden taulukot ovat myös mahdollisia lisäämällä ylimääräisiä pilkkuja määrittelysyntaksiin:

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

Yllä olevassa koodissa myArray3D sisältää 60 alkiota (3x4x5), kun taas myArray4D sisältää 1800 alkiota (5x4x9x10).

Seuraavassa esimerkki 3-ulotteisen taulukon alustamisesta:

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

Mikä on oikea koodi "Pumpkin"-alkion hakemiseen foods-taulukosta:

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 5
some-alt