C# massiivi õpetus: loomine, deklareerimine, initsialiseerimine
⚡ Nutikas kokkuvõte
C# massiivid salvestavad fikseeritud suurusega elementide kogumit, millel on sama andmetüüp ühe muutujanime all. Iga element asub nullpõhises indeksis, seega on väärtuste deklareerimine, initsialiseerimine ja neile juurdepääs kiire ja prognoositav.

Mis on massiivid C#-s?
Massiivi kasutatakse elementide kogu või seeria salvestamiseks. Need elemendid on sama tüüpi.
Näiteks kui teil on täisarvuliste väärtuste massiiv, võib massiiv olla väärtuste kogum, näiteks [1, 2, 3, 4]. Siin on massiivi elementide arv 4.
Massiivid on kasulikud, kui soovite salvestada sama tüüpi väärtuste kogu. Nii et selle asemel, et kuulutada a muutuja iga elemendi jaoks saate deklareerida ainult ühe muutuja.
See muutuja osutab massiivile või elementide loendile, mis vastutab massiivi elementide salvestamise eest.
Vaatame, kuidas saame C#-s massiividega töötada. Meie näites deklareerime täisarvude massiivi ja töötame nendega vastavalt.
Pange tähele, et kogu allolev kood tehakse faili Program.cs.
Step 1) Massiivi deklareerimine – esimene samm on massiivi deklareerimine. Vaatame, kuidas saame selle järgmise koodinäite abil saavutada.
Code Selgitus:-
- Esimene osa on andmetüüp. See määrab massiivis kasutatavate elementide tüübi. Nii et meie puhul loome täisarvude massiivi.
- Teine osa [ ], mis määrab massiivi järjestuse. (Aste on kohatäide, mis määrab massiivi sisaldavate elementide arvu)
- Järgmine on massiivi nimi, mis meie puhul on "väärtused". Pange tähele, et näete rohelist särtsuvat allajoont, ärge selle pärast muretsege. See on lihtsalt .Net, mis ütleb, et olete massiivi deklareerinud, kuid ei kasuta seda kuskil.
Step 2) Järgmine samm on massiivi lähtestamine. Siin täpsustame massiivi säilitatavate väärtuste arvu. Samuti määrame massiivi igale elemendile väärtused.
Code Selgitus:-
- Esiteks määrame massiivi mahutavate elementide arvu 3-le. Seega nurksulgudes ütleme, et massiiv mahutab 3 elementi.
- Seejärel omistame igale massiivi elemendile väärtused. Seda saame teha, määrates muutuja nime ja indeksi positsiooni massiivis. Seega väärtused[0] tähendab, et salvestame väärtuse massiivi esimesse positsiooni. Sarnaselt teisele positsioonile juurdepääsuks kasutame tähistust väärtused[1] jne.
märkused: – Massiivides algab indeksi asukoht nullist.
Step 3) Kuvame nüüd konsoolis massiivi üksikud elemendid. Selle saavutamiseks lisame alloleva koodi.
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 Selgitus:-
See on lihtne osa, kus me lihtsalt kasutame meetodit Console.WriteLine, et saata elemendi iga väärtus konsooli.
Pange tähele, et jällegi pääseme igale elemendile juurde massiivi muutuja nime ja indeksi positsiooni abil.
Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatud, kuvatakse järgmine väljund.
Väljund:
Väljundist näete kõiki konsoolis kuvatava massiivi väärtusi.
Kuidas foreach funktsiooni abil C# massiivi läbi tsüklida
Iga elemendi indeksi järgi lugemine toimib, aga muutub tüütuks, kui massiiv sisaldab palju väärtusi. Foreach-tsükkel pakub selgema viisi massiivi iga elemendi järjestikuseks külastamiseks ilma tracLoo ise indeksmuutuja.
Foreach-lause võtab massiivist iga elemendi ükshaaval ja kopeerib selle tsükli muutujasse. Seejärel kasutate seda muutujat tsükli sisus. Kuna tsükkel peatub automaatselt viimase elemendi juures, välistab foreach massiivi lõpust kaugemale lugemise ohu.
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(); } } }
Ülaltoodud näites deklareeritakse ja initsialiseeritakse kolmest täisarvust koosnev massiiv ning seejärel käib see foreach-iga läbi. Igal läbimisel muutuja kirje saab järgmise väärtuse ja Console.WriteLine prindib selle välja. Väljundiks on numbrid 1, 2 ja 3 eraldi ridadel.
Olulised punktid foreach funktsiooni kasutamisel massiivide puhul:
- Tsüklimuutuja on kirjutuskaitstud, seega sobib foreach kõige paremini väärtuste lugemiseks, mitte nende kohapealseks muutmiseks.
- Elementide muutmiseks vaatamise ajalping, kasuta selle asemel indeksiga for-tsüklit.
- foreach töötab ühemõõtmeliste massiivide, mitmemõõtmeliste massiivide ja mis tahes iteratsiooni toetavate kollektsioonidega.
C# mitmemõõtmelised massiivid
Siiani näidatud massiivid on ühemõõtmelised, mis tähendab, et nad salvestavad lihtsa väärtuste loendi. C# toetab ka mitmemõõtmelisi massiive, mis paigutavad elemendid ridade ja veergude ruudustikku. Kahemõõtmeline massiiv on kõige levinum vorm ja sobib selliste andmete jaoks nagu maatriksid, mängulauad ja tabelid.
Kahemõõtmelise massiivi deklareerimiseks asetatakse nurksulgudesse koma. Iga täiendav koma lisab uue mõõtme, seega int[,] on kahemõõtmeline ja int[,,] on kolmemõõtmeline. Elementidele jõutakse seejärel ühe indeksiga mõõtme kohta.
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(); } } }
Siin sisaldab massiivimaatriks kahte rida ja kahte veergu. Element matrix[0, 0] tagastab 1 ja matrix[1, 1] tagastab 4. Mõõtmete arv fikseeritakse massiivi deklareerimisel, samas kui iga mõõtme suurus määratakse massiivi loomisel.
C# sakilised massiivid
Sakiline massiiv on massiiv, mille elemendid on ise massiivid. Erinevalt ristkülikukujulisest mitmemõõtmelisest massiivist võib igal sisemisel massiivil olla erinev pikkus, mistõttu sakilist massiivi nimetatakse sageli massiivide massiiviks. See paindlikkus on kasulik, kui read sisaldavad loomulikult erinevat arvu väärtusi.
Deklareerid sakilise massiivi kahe nurksulgude komplektiga ja seejärel lood iga sisemise massiivi eraldi. Järgmises näites luuakse sakiline massiiv, kus esimeses reas on kolm väärtust ja teises reas kaks.
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(); } } }
Avaldis jagged[0][2] loeb esimese rea kolmandat elementi, mis on 3, ja jagged[1][1] loeb teise rea teist elementi, mis on 5. Kuna iga rida on eraldi massiiv, kasutavad sakilised massiivid mälu tõhusalt, kui rea pikkus varieerub, kuigi iga sisemise massiivi initsialiseerimiseks on vaja lisasammu.




