Moniulotteiset 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
1datatype[][] 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
1int[,] 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
12345datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };
Tarkastellaan esimerkkiä, jossa on todellisia arvoja:
main.cs
12345678910111213141516171819202122using 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
1arrayName[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
123456789101112131415161718using 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
123int[,,] 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
123456int[,,] 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} } };
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Moniulotteiset 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
1datatype[][] 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
1int[,] 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
12345datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };
Tarkastellaan esimerkkiä, jossa on todellisia arvoja:
main.cs
12345678910111213141516171819202122using 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
1arrayName[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
123456789101112131415161718using 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
123int[,,] 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
123456int[,,] 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} } };
Kiitos palautteestasi!