C# Array Tutorial: Luo, ilmoita, alusta
โก รlykรคs yhteenveto
C#-taulukot tallentavat kiinteรคn kokoisen kokoelman elementtejรค, joilla on sama tietotyyppi, yhden muuttujanimen alle. Jokainen elementti sijaitsee nollapohjaisessa indeksissรค, joten arvojen mรครคrittรคminen, alustaminen ja kรคyttรคminen on nopeaa ja ennustettavaa.

Mikรค on taulukko C#:ssa?
Taulukkoa kรคytetรครคn elementtien kokoelman tai sarjan tallentamiseen. Nรคmรค elementit ovat samantyyppisiรค.
Jos sinulla on esimerkiksi joukko kokonaislukuarvoja, taulukko voisi olla kokoelma arvoja, kuten [1, 2, 3, 4]. Tรคssรค taulukon elementtien lukumรครคrรค on 4.
Taulukot ovat hyรถdyllisiรค, kun haluat tallentaa kokoelman samantyyppisiรค arvoja. Joten sen sijaan, ettรค ilmoittaisit a muuttuja jokaiselle elementille voit ilmoittaa vain yhden muuttujan.
Tรคmรค muuttuja osoittaa taulukkoon tai elementtiluetteloon, joka on vastuussa taulukon elementtien tallentamisesta.
Katsotaanpa, kuinka voimme tyรถskennellรค taulukoiden kanssa C#:ssa. Esimerkissรคmme julistamme joukon kokonaislukuja ja tyรถskentelemme niiden kanssa vastaavasti.
Huomaa, ettรค kaikki alla oleva koodi tehdรครคn Program.cs-tiedostoon.
Vaihe 1) Taulukon ilmoittaminen โ Ensimmรคinen vaihe on taulukon ilmoittaminen. Katsotaanpa, kuinka voimme saavuttaa tรคmรคn alla olevan koodiesimerkin avulla.
Code Selitys:-
- Ensimmรคinen osa on tietotyyppi. Se mรครคrittรครค taulukossa kรคytettyjen elementtien tyypin. Joten meidรคn tapauksessamme luomme joukon kokonaislukuja.
- Toinen osa [ ], joka mรครคrittรครค taulukon arvon. (Asetus on paikkamerkki, joka mรครคrittรครค taulukon sisรคltรคmien elementtien mรครคrรคn)
- Seuraava on taulukon nimi, joka meidรคn tapauksessamme on "arvot". Huomaa, ettรค nรคet vihreรคn vinoavan alleviivauksen, รคlรค huoli siitรค. Se on vain .Net, joka sanoo, ettรค olet ilmoittanut taulukon, mutta et kรคytรค sitรค missรครคn.
Vaihe 2) Seuraava vaihe on alustaa taulukko. Tรคssรค aiomme mรครคrittรครค taulukon sisรคltรคmien arvojen mรครคrรคn. Aiomme myรถs antaa arvot jokaiselle taulukon elementille.
Code Selitys:-
- Ensin asetamme taulukon sisรคltรคmien elementtien lukumรครคrรคksi 3. Joten hakasulkeissa sanomme, ettรค taulukko sisรคltรครค 3 elementtiรค.
- Sitten annamme arvot taulukon jokaiselle alkiolle. Voimme tehdรค tรคmรคn mรครคrittรคmรคllรค muuttujan nimen + indeksin sijainnin taulukossa. Joten values[0] tarkoittaa, ettรค tallennamme arvon taulukon ensimmรคiseen sijaintiin. Vastaavasti toiseen sijaintiin pรครคsemiseksi kรคytรคmme merkintรคtapaa values[1] ja niin edelleen.
Huomautuksia: โ Arraysissa indeksin sijainti alkaa 0:sta.
Vaihe 3) Nรคytetรครคn nyt taulukon yksittรคiset elementit konsolissa. Lisรคtรครคn alla oleva koodi saavuttaaksemme tรคmรคn.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code Selitys:-
Tรคmรค on yksinkertainen osa, jossa kรคytรคmme vain Console.WriteLine-menetelmรครค elementin jokaisen arvon lรคhettรคmiseen konsoliin.
Huomaa, ettรค taas pรครคsemme jokaiseen elementtiin taulukon muuttujan nimen ja indeksipaikan avulla.
Jos yllรค oleva koodi on syรถtetty oikein ja ohjelma suoritetaan, seuraava tulos nรคytetรครคn.
lรคhtรถ:
Tulosteesta nรคet kaikki taulukon arvot, jotka nรคkyvรคt konsolissa.
C#-taulukon lรคpikรคyminen foreach-funktion avulla
Kunkin elementin lukeminen indeksin perusteella toimii, mutta siitรค tulee tyรถlรคstรค, jos taulukossa on useita arvoja. Foreach-silmukka tarjoaa siistimmรคn tavan kรคydรค lรคpi taulukon jokainen elementti jรคrjestyksessรค ilman tracKunnioita indeksimuuttujaa itse.
Foreach-lauseke ottaa jokaisen alkion taulukosta yksi kerrallaan ja kopioi ne silmukkamuuttujaan. Sitten kรคytรคt kyseistรค muuttujaa silmukan rungon sisรคllรค. Koska silmukka pysรคhtyy automaattisesti viimeiseen alkioon, foreach poistaa riskin lukea taulukon lopun jรคlkeen.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
Yllรค oleva esimerkki mรครคrittelee ja alustaa kolmen kokonaisluvun taulukon ja kรคy sen lรคpi foreach-komennolla. Jokaisella lรคpimenolla muuttuja erรค vastaanottaa seuraavan arvon ja Console.WriteLine tulostaa sen. Tulosteena ovat luvut 1, 2 ja 3 eri riveillรค.
Tรคrkeimmรคt muistettavat asiat foreach-funktiosta taulukoiden kanssa:
- Silmukkamuuttuja on vain luku -tilassa, joten foreach sopii parhaiten arvojen lukemiseen sen sijaan, ettรค muuttaisi niitรค paikallaan.
- Muokataksesi elementtejรค katsomisen aikanaping, kรคytรค sen sijaan for-silmukkaa indeksin kanssa.
- foreach toimii yksiulotteisten taulukoiden, moniulotteisten taulukoiden ja kaikkien iteraatiota tukevien kokoelmien kanssa.
C# moniulotteiset taulukot
Tรคhรคn mennessรค esitetyt taulukot ovat yksiulotteisia, eli ne tallentavat yksinkertaisen arvoluettelon. C# tukee myรถs moniulotteisia taulukoita, jotka jรคrjestรคvรคt elementit rivien ja sarakkeiden muodostamaan ruudukkoon. Kaksiulotteinen taulukko on yleisin muoto ja sopii esimerkiksi matriiseille, pelilaudoille ja taulukoille.
Kaksiulotteinen taulukko mรครคritetรครคn sijoittamalla pilkku hakasulkeiden sisรครคn. Jokainen ylimรครคrรคinen pilkku lisรครค yhden ulottuvuuden, joten int[,] on kaksiulotteinen ja int[,,] on kolmiulotteinen. Elementteihin pรครคstรครคn sitten yhdellรค indeksillรค ulottuvuutta kohden.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
Tรคssรค taulukkomatriisissa on kaksi riviรค ja kaksi saraketta. Alkio matriisi[0, 0] palauttaa arvon 1 ja matriisi[1, 1] palauttaa arvon 4. Ulottuvuuksien lukumรครคrรค on kiinteรค taulukkoa mรครคritettรคessรค, kun taas kunkin ulottuvuuden koko asetetaan taulukkoa luotaessa.
C# rosoiset taulukot
Rosoinen taulukko on taulukko, jonka elementit ovat itse taulukoita. Toisin kuin suorakulmaisessa moniulotteisessa taulukossa, jokaisella sisรคtaulukolla voi olla eri pituus, minkรค vuoksi rosoista taulukkoa kutsutaan usein taulukkotaulukoksi. Tรคmรค joustavuus on hyรถdyllistรค, kun riveillรค on luonnostaan โโeri mรครคriรค arvoja.
Mรครคritรคt rosoisen taulukon, jossa on kaksi hakasulkeparia, ja luot sitten jokaisen sisรคisen taulukon erikseen. Seuraavassa esimerkissรค luodaan rosoinen taulukko, jossa ensimmรคisellรค rivillรค on kolme arvoa ja toisella rivillรค kaksi.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
Lauseke jagged[0][2] lukee ensimmรคisen rivin kolmannen elementin, joka on 3, ja jagged[1][1] lukee toisen rivin toisen elementin, joka on 5. Koska jokainen rivi on erillinen taulukko, rosoiset taulukot kรคyttรคvรคt muistia tehokkaasti, kun rivien pituudet vaihtelevat, vaikka ne tarvitsevatkin ylimรครคrรคisen vaiheen jokaisen sisรคisen taulukon alustamiseksi.




