Vodič za C# polje: Stvori, deklariraj, inicijaliziraj
⚡ Pametni sažetak
C# nizovi pohranjuju kolekciju elemenata fiksne veličine koji dijele isti tip podataka pod jednim nazivom varijable. Svaki element se nalazi na indeksu koji se temelji na nuli, tako da deklariranje, inicijalizacija i pristup vrijednostima ostaje brz i predvidljiv.
Što je niz u C#?
Niz se koristi za pohranu zbirke ili niza elemenata. Ovi će elementi biti iste vrste.
Na primjer, ako imate niz vrijednosti Integer, niz bi mogao biti skup vrijednosti kao što je [1, 2, 3, 4]. Ovdje je broj elemenata u nizu 4.
Nizovi su korisni kada želite pohraniti kolekciju vrijednosti iste vrste. Dakle, umjesto deklariranja a varijabla za svaki element, možete deklarirati samo jednu varijablu.
Ova varijabla će ukazivati na polje ili popis elemenata, koji će biti odgovorni za pohranjivanje elemenata niza.
Pogledajmo kako možemo raditi s nizovima u C#. U našem primjeru ćemo deklarirati niz Integers i raditi s njima u skladu s tim.
Imajte na umu da se sav kod u nastavku izrađuje u datoteci Program.cs.
Korak 1) Deklariranje niza – Prvi korak je deklariranje niza. Pogledajmo kako to možemo postići pomoću donjeg primjera koda.
Code Obrazloženje:-
- Prvi dio je tip podataka. Određuje vrstu elemenata koji se koriste u nizu. Dakle, u našem slučaju stvaramo niz cijelih brojeva.
- Drugi dio [ ], koji specificira rang niza. (Rang je rezervirano mjesto koje određuje broj elemenata koje će polje sadržavati)
- Sljedeće je ime polja koje je u našem slučaju 'vrijednosti'. Imajte na umu da vidite zelenu vijugavu crtu, ne brinite zbog toga. To samo .Net govori da ste deklarirali niz, ali ga nigdje ne koristite.
Korak 2) Sljedeći korak je inicijalizacija niza. Ovdje ćemo navesti broj vrijednosti koje će polje sadržavati. Također ćemo dodijeliti vrijednosti svakom elementu niza.
Code Obrazloženje:-
- Prvo, postavljamo broj elemenata koje će niz sadržavati na 3. Dakle, u uglatim zagradama, kažemo da će niz sadržavati 3 elementa.
- Zatim dodjeljujemo vrijednosti svakom elementu niza. To možemo učiniti određivanjem naziva varijable + indeksne pozicije u nizu. Dakle, vrijednosti[0] znači da pohranjujemo vrijednost na prvu poziciju niza. Slično tome, za pristup drugoj poziciji koristimo notaciju vrijednosti[1] i tako dalje.
bilješke: – U polju, pozicija indeksa počinje od 0.
Korak 3) Prikažimo sada pojedinačne elemente niza u konzoli. Dodajmo donji kod da bismo to postigli.
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 Obrazloženje:-
Ovo je jednostavan dio u kojem samo koristimo metodu Console.WriteLine za slanje svake vrijednosti elementa na konzolu.
Imajte na umu da ponovno pristupamo svakom elementu uz pomoć naziva varijable niza zajedno s pozicijom indeksa.
Ako se gornji kod ispravno unese i program se izvrši, prikazat će se sljedeći izlaz.
Izlaz:
Iz izlaza možete vidjeti sve vrijednosti polja koje se prikazuju u konzoli.
Kako proći kroz C# niz pomoću naredbe foreach
Čitanje svakog elementa po njegovom indeksu funkcionira, ali postaje zamorno kada niz sadrži mnogo vrijednosti. Petlja foreach nudi čišći način posjećivanja svakog elementa niza redom bez tracsami kraljujte indeksnu varijablu.
Naredba foreach uzima svaku stavku iz niza jednu po jednu i kopira je u varijablu petlje. Tu varijablu zatim koristite unutar tijela petlje. Budući da se petlja automatski zaustavlja na posljednjem elementu, foreach uklanja rizik čitanja nakon kraja niza.
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(); } } }
Gornji primjer deklarira i inicijalizira niz od tri cijela broja, a zatim prolazi kroz njega s foreach. U svakom prolazu varijabla stavka prima sljedeću vrijednost, a Console.WriteLine je ispisuje. Izlaz su brojevi 1, 2 i 3 u odvojenim retcima.
Ključne stvari koje treba zapamtiti o foreach funkciji s nizovima:
- Varijabla petlje je samo za čitanje, pa je foreach najbolja za čitanje vrijednosti, a ne za njihovu promjenu na mjestu.
- Za izmjenu elemenata dok se gleda WCping, umjesto toga koristite for petlju s indeksom.
- Funkcija foreach radi s jednodimenzionalnim nizovima, višedimenzionalnim nizovima i bilo kojom kolekcijom koja podržava iteraciju.
C# višedimenzionalni nizovi
Do sada prikazani nizovi su jednodimenzionalni, što znači da pohranjuju jednostavan popis vrijednosti. C# također podržava višedimenzionalne nizove, koji elemente raspoređuju u mrežu redaka i stupaca. Dvodimenzionalni niz je najčešći oblik i odgovara podacima kao što su matrice, ploče za igru i tablice.
Dvodimenzionalni niz deklarirate stavljanjem zareza unutar uglatih zagrada. Svaki dodatni zarez dodaje još jednu dimenziju, pa je int[,] dvodimenzionalan, a int[,,] trodimenzionalan. Elementi se zatim dosežu s jednim indeksom po dimenziji.
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(); } } }
Ovdje matrica polja sadrži dva retka i dva stupca. Element matrica[0, 0] vraća 1, a matrica[1, 1] vraća 4. Broj dimenzija je fiksan prilikom deklaracije polja, dok se veličina svake dimenzije postavlja prilikom stvaranja polja.
C# nazubljeni nizovi
Nazubljeni niz je niz čiji su elementi sami nizovi. Za razliku od pravokutnog višedimenzionalnog niza, svaki unutarnji niz može imati različitu duljinu, zbog čega se nazubljeni niz često naziva nizom nizova. Ova fleksibilnost pomaže kada retci prirodno sadrže različit broj vrijednosti.
Deklarira se nazubljeni niz s dva seta uglatih zagrada, a zatim se svaki unutarnji niz zasebno stvara. Sljedeći primjer gradi nazubljeni niz gdje prvi redak sadrži tri vrijednosti, a drugi redak dvije.
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(); } } }
Izraz jagged[0][2] čita treći element prvog retka, koji je 3, a jagged[1][1] čita drugi element drugog retka, koji je 5. Budući da je svaki redak zaseban niz, nazubljeni nizovi učinkovito koriste memoriju kada se duljine redaka razlikuju, iako im je potreban dodatni korak za inicijalizaciju svakog unutarnjeg niza.





