Kako inicializirati nize v C#

Kako Inicializirati Nize V C



V C# nizi služijo kot vsebniki za shranjevanje elementov iste vrste podatkov. Pri ustvarjanju matrike obstaja več pristopov za njeno inicializacijo z elementi. Ta članek se poglobi v različne metode inicializacije nizov v C# in nudi celovito raziskavo vsakega pristopa.

Metode za inicializacijo nizov v C#

Nizi so bistvena podatkovna struktura v računalniškem programiranju, ki vam omogoča shranjevanje in upravljanje zbirke elementov iste vrste podatkov na sosednjih pomnilniških lokacijah. Tukaj je nekaj načinov za inicializacijo nizov v C#:







1: Inicializacija matrik s sintakso inicializatorja matrike

Najbolj enostaven pristop za inicializacijo matrike je uporaba sintakse inicializatorja matrike, saj to vključuje zapiranje elementov matrike v oklepaje, ločenih z vejicami, na primer:



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


V tej kodi je matrika celih števil z imenom »numbers« ustvarjena in inicializirana z vrednostmi od 1 do 5. Podobno lahko uporabite isto sintakso za inicializacijo večdimenzionalne matrike.



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


Tukaj je primer kode, ki uporablja sintakso inicializatorja za inicializacijo 1D in 2D matrike v C#:





z uporabo sistema;

niz razredov
{
statična praznina Main ( vrvica [ ] args )
{
// Inicializacija 1D matrike z uporabo sintakse inicializatorja
int [ ] niz1D = { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'Vrednosti v nizu1D:' ) ;
za ( int i = 0 ; jaz < array1D.Length; i++ ) {
Console.WriteLine ( niz1D [ jaz ] ) ;
}
// Inicializacija 2D matrike z uporabo sintakse inicializatorja
int [ , ] polje2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'Vrednosti v array2D:' ) ;
za ( int i = 0 ; jaz < array2D.GetLength ( 0 ) ; i++ ) {
za ( int j = 0 ; j < array2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, polje2D [ jaz, j ] ) ;
}
}
}
}


V tej kodi uporabljamo sintakso inicializatorja za inicializacijo 1-dimenzionalne matrike celih števil, imenovane array1D, z vrednostmi 1, 2, 3, 4 in 5.

Uporabljamo tudi sintakso inicializatorja za inicializacijo 2-dimenzionalne matrike celih števil, imenovane array2D, z vrednostmi {1, 2}, {3, 4} in {5, 6}.



Nato uporabimo dodatne zanke for za ponavljanje vsakega elementa vsake matrike in natisnemo njegovo vrednost na konzolo.

2: Inicializacija nizov z uporabo nove ključne besede

Dodatna metoda za inicializacijo matrike vključuje uporabo novo ključna beseda. To vključuje določitev velikosti matrike v oglatih oklepajih, ki ji sledi nova ključna beseda in nato podatkovni tip elementov matrike. Na primer:

int [ ] številke = novo int [ 5 ] ;


Ta koda ustvari matriko celih števil z imenom numbers z velikostjo 5 in inicializira vse elemente na njihovo privzeto vrednost, ki je 0 za matrike celih števil.

Tukaj je sintaksa za inicializacijo večdimenzionalne matrike z uporabo nove ključne besede v C#:

< vrsta > [ , ] < arrayName > = novo < vrsta > [ < dolžina1 > , < dolžina2 > , ... ] { { < začetne vrednosti > } } ;


V tej sintaksi je podatkovni tip elementov matrike, je ime matrike, , in tako naprej so dolžine matrike v vsaki dimenziji in so začetne vrednosti elementov polja.

Tukaj je primer, kako uporabiti to sintakso za inicializacijo 2-dimenzionalne matrike celih števil:

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


V tem primeru inicializiramo 2D niz celih števil z imenom myArray s 3 vrsticami in 2 stolpcema z uporabo nove ključne besede. Zagotavljamo tudi začetne vrednosti za vsak element matrike s sintakso dvojnih zavitih oklepajev. Vrednosti so {1, 2}, {3, 4} in {5, 6}, ki ustrezajo elementom v vsaki vrstici.

Tukaj je primer, kako uporabiti novo ključno besedo za inicializacijo tako 1-dimenzionalne kot 2-dimenzionalne matrike v C#, skupaj s kodo za izpis vrednosti v vsaki matriki:

z uporabo sistema;

niz razredov
{
statična praznina Main ( vrvica [ ] args )
{
// Inicializacija a 1 -dimenzionalni niz
int [ ] myArray1D = novo int [ ] { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'Vrednosti v myArray1D:' ) ;
za ( int i = 0 ; jaz < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ jaz ] ) ;
}
// Inicializacija a 2 -dimenzionalni niz
int [ , ] myArray2D = novo int [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'Vrednosti v myArray2D:' ) ;
za ( int i = 0 ; jaz < myArray2D.GetLength ( 0 ) ; i++ )
{
za ( int j = 0 ; j < myArray2D.GetLength ( 1 ) ; j++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , i, j, mojaMatrika2D [ jaz, j ] ) ;
}
}
}
}


V tej kodi uporabljamo ključno besedo new za inicializacijo enodimenzionalne matrike celih števil, imenovane myArray1D z vrednostmi 1, 2, 3, 4 in 5 ter dvodimenzionalno matriko celih števil, imenovano myArray2D z vrednostmi {1, 2}, {3, 4} in {5, 6}.

Nato uporabimo zanke for za ponavljanje vsakega elementa vsake matrike in natisnemo njegovo vrednost na konzolo. Upoštevajte, da za 2-dimenzionalni niz uporabljamo GetLength() za določitev števila vrstic in stolpcev ter uporabo ugnezdenih zank for za ponavljanje skozi vsak element.

3: Inicializacija nizov z uporabo zank

Matrike je mogoče inicializirati tudi z uporabo zank. Eden od pristopov je uporaba zanke for, ki vam omogoča iteracijo skozi matriko in dodeljevanje vrednosti vsakemu elementu.

int [ ] številke = novo int [ 5 ] ;
za ( int i = 0 ; jaz < številke.Dolžina; i++ )
{
številke [ jaz ] = i + 1 ;
}


Ta koda ustvari matriko celih števil z imenom numbers z velikostjo 5 in vsakemu elementu dodeli vrednost, ki je enaka njegovemu indeksu plus 1. Tukaj je primer, kako inicializirati 2-dimenzionalno matriko celih števil v C# z uporabo zank:

int [ , ] myArray = novo int [ 3 , 2 ] ;
za ( int i = 0 ; jaz < 3 ; i++ )
{
za ( int j = 0 ; j < 2 ; j++ )
{
myArray [ jaz, j ] = i + j;
}
}


V tem primeru uporabljamo ugnezdene zanke for za ponavljanje skozi vsak element dvodimenzionalne matrike celih števil, imenovane myArray , ki ima 3 vrstice in 2 stolpca. Za vsak element nastavimo njegovo vrednost na vsoto njegovih indeksov vrstic in stolpcev z uporabo izraza i + j.

Tukaj je primer, kako uporabiti zanke za inicializacijo tako 1-dimenzionalne kot 2-dimenzionalne matrike v C#, skupaj s kodo za izpis vrednosti v vsaki matriki:

z uporabo sistema;

niz razredov
{
statična praznina Main ( vrvica [ ] args )
{
// Inicializacija a 1 -dimenzionalni niz z uporabo zanke
int [ ] myArray1D = novo int [ 5 ] ;
za ( int i = 0 ; jaz < myArray1D.Length; i++ )
{
myArray1D [ jaz ] = i + 1 ;
}
Console.WriteLine ( 'Vrednosti v myArray1D:' ) ;
za ( int i = 0 ; jaz < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ jaz ] ) ;
}
// Inicializacija a 2 -dimenzionalni niz z uporabo ugnezdenih zank
int [ , ] myArray2D = novo int [ 3 , 2 ] ;
za ( int i = 0 ; jaz < 3 ; i++ )
{
za ( int j = 0 ; j < 2 ; j++ )
{
myArray2D [ jaz, j ] = i + j;
}
}
Console.WriteLine ( 'Vrednosti v myArray2D:' ) ;
za ( int i = 0 ; jaz < 3 ; i++ )
{
za ( int j = 0 ; j < 2 ; j++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , i, j, mojaMatrika2D [ jaz, j ] ) ;
}
}
}
}


V tej kodi uporabljamo zanko for za inicializacijo 1-dimenzionalne matrike celih števil, imenovane myArray1D, z vrednostmi 1, 2, 3, 4 in 5. Prav tako uporabljamo ugnezdene zanke for za inicializacijo 2-dimenzionalne matrike celih števil, imenovane myArray2D z vrednostmi {0, 1}, {1, 2} in {2, 3} z uporabo izraza i + j.

Nato uporabite dodatne zanke for za ponavljanje vsakega elementa vsake matrike in izpis njegove vrednosti na konzolo.

4: Inicializacija nizov z uporabo Array.Copy()

Alternativni pristop k inicializaciji matrike vključuje uporabo funkcije Array.Copy(). To vključuje ustvarjanje izvorne matrike z želenimi elementi in njihovo nato kopiranje v ciljno matriko. Na primer:

int [ ] vir = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] cilj = novo int [ vir.Dolžina ] ;
Array.Copy ( vir , cilj, vir.Dolžina ) ;


Ta koda ustvari matriko celih števil z imenom izvor z vrednostmi od 1 do 5, ustvari novo matriko celih števil z imenom cilj z enako velikostjo kot vir in nato kopira elemente iz vira v cilj.

Dovolite mi, da predstavim primer, ki prikazuje uporabo Array.Copy za inicializacijo dvodimenzionalne matrike celih števil v C#:

int [ , ] sourceArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] destinacijaArray = novo int [ 3 , 2 ] ;

Array.Copy ( izvornaMatrika, CiljnaMatrika, izvornaMatrika.Dolžina ) ;


V tem primeru imamo 2-dimenzionalno niz celih števil, ki se imenuje sourceArray s 3 vrsticami in 2 stolpcema. Uporabljamo Array.Copy() za kopiranje vsebine sourceArray v novo 2-dimenzionalno matriko celih števil, imenovano destinacijska matrika, ki ima prav tako 3 vrstice in 2 stolpca.

The Array.Copy() metoda traja trije argumenti : the izvorni niz , the ciljni niz , in dolžina podatkov, ki jih želite kopirati. V tem primeru kopiramo celotno vsebino sourceArray v destinacijaArray , torej gremo mimo sourceArray.Length kot tretji argument.

Upoštevajte, da lahko uporabite Array.Copy() za inicializacijo matrik s poljubnim številom dimenzij, če imata izvorna in ciljna matrika enako število dimenzij in enako velikost v vsaki dimenziji.

Upoštevajte tudi to Array.Copy() izvede plitvo kopijo izvorne matrike, kar pomeni, da če izvorna matrika vsebuje referenčne tipe, bodo reference kopirane, vendar sami objekti ne bodo podvojeni.

Tukaj je celotna koda, ki uporablja Array.Copy() funkcija za inicializacijo matrike v C#:

z uporabo sistema;

niz razredov
{
statična praznina Main ( vrvica [ ] args )
{
// Inicializacija a 1 -dimenzionalni niz z uporabo Array.Copy
int [ ] izvorniArray1D = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] destinacijaArray1D = novo int [ 5 ] ;
Array.Copy ( izvornaMatrika1D, ciljnaMatrika1D, izvornaMatrika1D.Dolžina ) ;
Console.WriteLine ( 'Vrednosti v destinacijiArray1D:' ) ;
za ( int i = 0 ; jaz < destinacijaArray1D.Length; i++ ) {
Console.WriteLine ( destinacijaArray1D [ jaz ] ) ;
}
// Inicializacija a 2 -dimenzionalni niz z uporabo Array.Copy
int [ , ] izvorniArray2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] destinacijaArray2D = novo int [ 3 , 2 ] ;
Array.Copy ( sourceArray2D, destinationArray2D, sourceArray2D.Length ) ;
Console.WriteLine ( 'Vrednosti v destinacijiArray2D:' ) ;
za ( int i = 0 ; jaz < destinacijaArray2D.GetLength ( 0 ) ; i++ ) {
za ( int j = 0 ; j < destinacijaArray2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, destinacijaArray2D [ jaz, j ] ) ;
}
}
}
}


V tej kodi uporabljamo Array.Copy() za inicializacijo 1-dimenzionalne matrike celih števil, imenovane destinationArray1D, z vrednostmi 1, 2, 3, 4 in 5 iz izvorne matrike, imenovane sourceArray1D.

Uporabljamo tudi Array.Copy() za inicializacijo 2-dimenzionalne matrike celih števil, imenovane destinationArray2D, z vrednostmi {1, 2}, {3, 4} in {5, 6} iz izvorne matrike, imenovane sourceArray2D.

Nato uporabimo dodatne zanke for za ponavljanje vsakega elementa vsake matrike in natisnemo njegovo vrednost na konzolo.

Zaključek

V tem članku smo raziskali različne načine inicializacije nizov v C#. Zajeli smo sintakso inicializatorja matrike z uporabo nove ključne besede, inicializacijo matrik z uporabo zank in uporabo metode Array.Copy(). Odvisno od specifičnega primera uporabe ima vsaka od teh metod svoj niz prednosti in slabosti. Če se boste seznanili s temi različnimi pristopi, boste lahko izbrali najprimernejšega za vaše posebne zahteve.