Kako inicijalizirati nizove u C#

Kako Inicijalizirati Nizove U C



U C# nizovi služe kao spremnici za pohranu elemenata iste vrste podataka. Kada stvarate niz, postoji više pristupa za njegovu inicijalizaciju elementima. Ovaj članak istražuje različite metode inicijalizacije nizova u C#, pružajući opsežno istraživanje svakog pristupa.

Metode za inicijalizaciju polja u C#

Nizovi su bitna podatkovna struktura u računalnom programiranju koja vam omogućuje pohranjivanje i rukovanje zbirkom elemenata iste vrste podataka u susjednim memorijskim lokacijama. Evo nekoliko načina za inicijalizaciju nizova u C#:







1: Inicijaliziranje nizova pomoću sintakse inicijalizatora niza

Najjednostavniji pristup inicijalizaciji niza je korištenje sintakse inicijalizatora niza jer to uključuje uvrštavanje elemenata niza u zagrade, odvojene zarezima, na primjer:



int [ ] brojevi = { 1 , 2 , 3 , 4 , 5 } ;


U ovom kodu stvara se niz cijelih brojeva pod nazivom 'brojevi' i inicijalizira s vrijednostima od 1 do 5. Slično, možete upotrijebiti istu sintaksu za inicijaliziranje višedimenzionalnog niza.



int [ , ] mojMultiDimensionalArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


Ovdje je primjer koda koji koristi sintaksu inicijalizatora za inicijalizaciju 1D i 2D niza u C#:





korištenje sustava;

niz klasa
{
statička praznina Glavni ( niz [ ] args )
{
// Inicijaliziranje 1D niza pomoću sintakse inicijalizatora
int [ ] niz1D = { 1 , 2 , 3 , 4 , 5 } ;
Konzola.WriteLine ( 'Vrijednosti u nizu1D:' ) ;
za ( int i = 0 ; ja < array1D.Length; i++ ) {
Konzola.WriteLine ( niz1D [ ja ] ) ;
}
// Inicijaliziranje 2D niza pomoću sintakse inicijalizatora
int [ , ] niz2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Konzola.WriteLine ( 'Vrijednosti u array2D:' ) ;
za ( int i = 0 ; ja < array2D.GetLength ( 0 ) ; i++ ) {
za ( int j = 0 ; j < array2D.GetLength ( 1 ) ; j++ ) {
Konzola.WriteLine ( '({0}, {1}): {2}' , i, j, niz2D [ i J ] ) ;
}
}
}
}


U ovom kodu koristimo sintaksu inicijalizatora za inicijalizaciju 1-dimenzionalnog niza cijelih brojeva koji se zove array1D s vrijednostima 1, 2, 3, 4 i 5.

Također koristimo sintaksu inicijalizatora za inicijalizaciju 2-dimenzionalnog niza cijelih brojeva koji se zove array2D s vrijednostima {1, 2}, {3, 4} i {5, 6}.



Zatim koristimo dodatne for petlje za iteraciju kroz svaki element svakog niza i ispisujemo njegovu vrijednost na konzoli.

2: Inicijalizacija nizova pomoću nove ključne riječi

Dodatna metoda za inicijalizaciju niza uključuje korištenje novi ključna riječ. To uključuje određivanje veličine niza u uglatim zagradama, nakon čega slijedi nova ključna riječ, a zatim tip podataka elemenata niza. Na primjer:

int [ ] brojevi = novi int [ 5 ] ;


Ovaj kod stvara niz cijelih brojeva nazvan brojevima veličine 5 i inicijalizira sve elemente na njihovu zadanu vrijednost, koja je 0 za nizove cijelih brojeva.

Evo sintakse za inicijalizaciju višedimenzionalnog niza pomoću nove ključne riječi u C#:

< tip > [ , ] < naziv polja > = novo < tip > [ < duljina1 > , < duljina2 > , ... ] { { < početneVrijednosti > } } ;


U ovoj sintaksi, je tip podataka elemenata niza, je naziv niza, , , i tako dalje su duljine niza u svakoj dimenziji, a su početne vrijednosti elemenata niza.

Evo primjera kako koristiti ovu sintaksu za inicijaliziranje 2-dimenzionalnog niza cijelih brojeva:

int [ , ] moj niz = novi int [ 3 , 2 ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


U ovom primjeru inicijaliziramo 2d niz cijelih brojeva pod nazivom myArray s 3 retka i 2 stupca pomoću ključne riječi new. Također pružamo početne vrijednosti za svaki element niza koristeći sintaksu dvostrukih vitičastih zagrada. Vrijednosti su {1, 2}, {3, 4} i {5, 6}, koje odgovaraju elementima u svakom retku.

Evo primjera kako koristiti novu ključnu riječ za inicijaliziranje jednodimenzionalnog i dvodimenzionalnog polja u C#, zajedno s kodom za ispis vrijednosti u svakom polju:

korištenje sustava;

niz klasa
{
statička praznina Glavni ( niz [ ] args )
{
// Inicijaliziranje a 1 -dimenzionalni niz
int [ ] myArray1D = novi int [ ] { 1 , 2 , 3 , 4 , 5 } ;
Konzola.WriteLine ( 'Vrijednosti u myArray1D:' ) ;
za ( int i = 0 ; ja < myArray1D.Length; i++ )
{
Konzola.WriteLine ( mojNiz1D [ ja ] ) ;
}
// Inicijaliziranje a 2 -dimenzionalni niz
int [ , ] myArray2D = novi int [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Konzola.WriteLine ( 'Vrijednosti u myArray2D:' ) ;
za ( int i = 0 ; ja < myArray2D.GetLength ( 0 ) ; i++ )
{
za ( int j = 0 ; j < myArray2D.GetLength ( 1 ) ; j++ )
{
Konzola.WriteLine ( '({0}, {1}): {2}' , i, j, moj niz2D [ i J ] ) ;
}
}
}
}


U ovom kodu koristimo ključnu riječ new za inicijalizaciju jednodimenzionalnog niza cijelih brojeva koji se zove mojNiz1D s vrijednostima 1, 2, 3, 4 i 5 i dvodimenzionalnim nizom cijelih brojeva tzv. mojArray2D s vrijednostima {1, 2}, {3, 4} i {5, 6}.

Zatim koristimo for petlje za ponavljanje kroz svaki element svakog niza i ispis njegove vrijednosti na konzoli. Imajte na umu da za 2-dimenzionalni niz koristimo GetLength() za određivanje broja redaka i stupaca i korištenje ugniježđenih for petlji za ponavljanje kroz svaki element.

3: Inicijalizacija nizova pomoću petlji

Nizovi se također mogu inicijalizirati pomoću petlji. Jedan pristup je korištenje for petlje, koja vam omogućuje ponavljanje niza i dodjeljivanje vrijednosti svakom elementu.

int [ ] brojevi = novi int [ 5 ] ;
za ( int i = 0 ; ja < brojevi.Duljina; i++ )
{
brojevima [ ja ] = i + 1 ;
}


Ovaj kod stvara niz cijelih brojeva s nazivom brojevi veličine 5 i dodjeljuje svakom elementu vrijednost jednaku njegovom indeksu plus 1. Evo primjera kako inicijalizirati dvodimenzionalni niz cijelih brojeva u C# pomoću petlji:

int [ , ] moj niz = novi int [ 3 , 2 ] ;
za ( int i = 0 ; ja < 3 ; i++ )
{
za ( int j = 0 ; j < 2 ; j++ )
{
myArray [ i J ] = i + j;
}
}


U ovom primjeru koristimo ugniježđene for petlje za ponavljanje kroz svaki element 2-dimenzionalnog niza cijelih brojeva koji se zove myArray , koji ima 3 retka i 2 stupca. Za svaki element, njegovu vrijednost postavljamo na zbroj indeksa retka i stupca pomoću izraza i + j.

Evo primjera kako koristiti petlje za inicijaliziranje jednodimenzionalnog i dvodimenzionalnog polja u C#, zajedno s kodom za ispis vrijednosti u svakom polju:

korištenje sustava;

niz klasa
{
statička praznina Glavni ( niz [ ] args )
{
// Inicijaliziranje a 1 -dimenzionalni niz pomoću petlje
int [ ] myArray1D = novi int [ 5 ] ;
za ( int i = 0 ; ja < myArray1D.Length; i++ )
{
mojNiz1D [ ja ] = i + 1 ;
}
Konzola.WriteLine ( 'Vrijednosti u myArray1D:' ) ;
za ( int i = 0 ; ja < myArray1D.Length; i++ )
{
Konzola.WriteLine ( mojNiz1D [ ja ] ) ;
}
// Inicijaliziranje a 2 -dimenzionalni niz koji koristi ugniježđene petlje
int [ , ] myArray2D = novi int [ 3 , 2 ] ;
za ( int i = 0 ; ja < 3 ; i++ )
{
za ( int j = 0 ; j < 2 ; j++ )
{
mojArray2D [ i J ] = i + j;
}
}
Konzola.WriteLine ( 'Vrijednosti u myArray2D:' ) ;
za ( int i = 0 ; ja < 3 ; i++ )
{
za ( int j = 0 ; j < 2 ; j++ )
{
Konzola.WriteLine ( '({0}, {1}): {2}' , i, j, moj niz2D [ i J ] ) ;
}
}
}
}


U ovom kodu koristimo petlju for za inicijalizaciju 1-dimenzionalnog niza cijelih brojeva koji se zove myArray1D s vrijednostima 1, 2, 3, 4 i 5. Također koristimo ugniježđene petlje za inicijaliziranje 2-dimenzionalnog niza cijelih brojeva koji se nazivaju myArray2D s vrijednostima {0, 1}, {1, 2} i {2, 3} koristeći izraz i + j.

Zatim koristite dodatne for petlje za ponavljanje kroz svaki element svakog niza i ispis njegove vrijednosti na konzoli.

4: Inicijaliziranje nizova pomoću Array.Copy()

Alternativni pristup inicijalizaciji niza uključuje korištenje funkcije Array.Copy(). To uključuje stvaranje izvornog niza sa željenim elementima i zatim njihovo kopiranje u ciljni niz. Na primjer:

int [ ] izvor = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] cilj = novi int [ izvor.Duljina ] ;
Niz.Kopiraj ( izvor , cilj, izvor.Duljina ) ;


Ovaj kod stvara niz cijelih brojeva pod nazivom izvor s vrijednostima od 1 do 5, stvara novi niz cijelih brojeva pod nazivom cilj iste veličine kao i izvor, a zatim kopira elemente iz izvora u cilj.

Dopustite mi da predstavim primjer koji pokazuje korištenje Array.Copy za inicijalizaciju dvodimenzionalnog niza cijelih brojeva u C#:

int [ , ] izvorni niz = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] odredišni niz = novi int [ 3 , 2 ] ;

Niz.Kopiraj ( izvorni niz, odredišni niz, izvorni niz. Duljina ) ;


U ovom primjeru imamo 2-dimenzionalni niz cijelih brojeva tzv izvorni niz sa 3 retka i 2 stupca. Koristimo se Array.Copy() za kopiranje sadržaja izvornog niza u novi 2-dimenzionalni niz cijelih brojeva koji se zove destinacijski niz, koji također ima 3 retka i 2 stupca.

The Array.Copy() metoda uzima tri argumenta : the izvorni niz , the odredišni niz , i duljina podataka koji se kopiraju. U ovom slučaju kopiramo cijeli sadržaj izvorni niz u odredišni niz , pa prolazimo sourceArray.Length kao treći argument.

Imajte na umu da možete koristiti Array.Copy() za inicijaliziranje nizova s ​​bilo kojim brojem dimenzija, sve dok izvorni i odredišni nizovi imaju isti broj dimenzija i istu veličinu u svakoj dimenziji.

Također, imajte na umu da Array.Copy() izvodi plitku kopiju izvornog polja, što znači da ako izvorno polje sadrži referentne tipove, reference će biti kopirane, ali sami objekti neće biti duplicirani.

Ovdje je potpuni kod koji koristi Array.Copy() funkcija za inicijalizaciju polja u C#:

korištenje sustava;

niz klasa
{
statička praznina Glavni ( niz [ ] args )
{
// Inicijaliziranje a 1 -dimenzionalni niz pomoću Array.Copy
int [ ] izvorni niz1D = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] odredišni niz1D = novi int [ 5 ] ;
Niz.Kopiraj ( izvorni niz1D, odredišni niz1D, izvorni niz1D.Duljina ) ;
Konzola.WriteLine ( 'Vrijednosti u odredišnom polju1D:' ) ;
za ( int i = 0 ; ja < odredišni niz1D. duljina; i++ ) {
Konzola.WriteLine ( odredišni niz1D [ ja ] ) ;
}
// Inicijaliziranje a 2 -dimenzionalni niz pomoću Array.Copy
int [ , ] izvorni niz2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] odredišni niz2D = novi int [ 3 , 2 ] ;
Niz.Kopiraj ( izvorni niz2D, odredišni niz2D, izvorni niz2D.Duljina ) ;
Konzola.WriteLine ( 'Vrijednosti u odredišnom polju2D:' ) ;
za ( int i = 0 ; ja < odredišniNiz2D.GetLength ( 0 ) ; i++ ) {
za ( int j = 0 ; j < odredišniNiz2D.GetLength ( 1 ) ; j++ ) {
Konzola.WriteLine ( '({0}, {1}): {2}' , i, j, odredišni niz2D [ i J ] ) ;
}
}
}
}


U ovom kodu koristimo Array.Copy() za inicijaliziranje 1-dimenzionalnog niza cijelih brojeva koji se zove destinacijski niz1D s vrijednostima 1, 2, 3, 4 i 5 iz izvornog niza koji se zove izvorni niz1D.

Također koristimo Array.Copy() za inicijaliziranje 2-dimenzionalnog niza cijelih brojeva pod nazivom destinationArray2D s vrijednostima {1, 2}, {3, 4} i {5, 6} iz izvornog polja pod nazivom sourceArray2D.

Zatim koristimo dodatne for petlje za iteraciju kroz svaki element svakog niza i ispisujemo njegovu vrijednost na konzoli.

Zaključak

U ovom smo članku istražili različite načine inicijalizacije nizova u C#. Pokrili smo sintaksu inicijalizatora polja, koristeći novu ključnu riječ, inicijalizirajući nizove pomoću petlji i koristeći metodu Array.Copy(). Ovisno o specifičnom slučaju uporabe, svaka od ovih metoda ima svoj niz prednosti i nedostataka. Upoznavanje s ovim različitim pristupima omogućit će vam odabir najprikladnijeg za vaše posebne zahtjeve.