Nizi proti seznamom: Primerjava uporabe v C#

Nizi Proti Seznamom Primerjava Uporabe V C



Matrika v C# je nabor elementov z enakimi vrstami podatkov in določeno specifično velikostjo. Predstavlja sosednji kos pomnilnika, kjer so shranjeni elementi. Z uporabo svojega indeksa nizi v C# ponujajo hiter in enostaven poljuben dostop do svojih članov. Seznam je dinamična podatkovna struktura v programskem jeziku C#, ki predstavlja skupino enako vtipkanih komponent. Za razliko od nizov lahko seznami dinamično rastejo ali krčijo velikost, kar omogoča učinkovito dodajanje, odstranjevanje in spreminjanje elementov. V tem članku so obravnavane podobnosti in razlike med nizi C# in seznami C#.

Izjava:

Nizi so deklarirani z uporabo 'type[] ArrayName;' sintakso, kjer tip označuje vrsto članov v zbirki matrike, »ArrName« pa je naslov, ki je dodeljen matriki. Deklaracija matrike je označena z oglatimi oklepaji [].

vrsta [ ] ArrayName = nov tip [ ] ;

Seznami so deklarirani z uporabo “List LsName;” sintakso, kjer tip predstavlja podatkovni tip elementov na seznamu, »LsName« pa je ime, ki je dodeljeno seznamu. Kotni oklepaji označujejo, da gre za splošno deklaracijo tipa.







Seznam < vrsta > listName = nov seznam < vrsta > ( ) ;

Inicializacija:

Matrike uporabljajo zavite oklepaje {}, da obdajajo vrednosti, medtem ko seznami uporabljajo nov konstruktor List, ki mu sledijo zaviti oklepaji {}, da zaprejo vrednosti.



vrsta [ ] ArrayName = { v1 , v2 , v3 , ... } ;

Seznam < vrsta > listName = nov seznam < vrsta > { v1 , v2 , v3 , ... } ;

Dodajanje vrednosti:

Ključnega pomena je, da si zapomnite, da imajo polja C# določeno velikost. Če je zahtevana drugačna velikost, je treba ustvariti novo matriko »newArr« z želeno velikostjo (trenutna dolžina + število novih vrednosti). Dodajte prvotno matriko »OrgArr« v novo matriko in dodelite nove vrednosti novim položajem v novi matriki ter posodobite sklic na novo matriko.



Array. Kopirati ( OrgArr , newArr , OrgArr. Dolžina ) ;

newArr [ OrgArr. Dolžina ] = 14 ; // nova vrednost

newArr [ OrgArr. Dolžina + 1 ] = 2 ; // nova vrednost

OrgArr = newArr ; // Posodobi referenco int[] NewArr = new int[OrgArr.Length + 2];

Seznami nudijo prilagodljivost glede upravljanja velikosti. Ko je seznam inicializiran, se začne z začetno zmogljivostjo, vendar se lahko samodejno razširi, ko je dodanih več elementov. Ta zmožnost dinamičnega spreminjanja velikosti omogoča, da se seznami prilagajajo spreminjajočim se zahtevam. Seznami C# ponujajo funkcijo Add() za dodajanje vrednosti na seznam. Tukaj je opisano, kako lahko dodate vrednosti na seznam C#:





Nizi proti seznamom : Primerjava uporabe v C #

Dostop do vrednot

Do vrednosti v nizu števil se dostopa z uporabo indeksnega zapisa [], tj. z uporabo indeksne številke v oklepaju in se shrani v drugo spremenljivko.

element tipa = ArrayName [ kazalo ] ;

Za dostop do vrednosti na seznamu C# lahko uporabite tudi zapis indeksa [] skupaj z želenim položajem indeksa, podobno kot pri nizih.



element tipa = ListName [ kazalo ] ;

Odstranjevanje vrednosti

Nizi imajo nastavljeno dolžino. Zato je treba za odstranitev elementov ustvariti nov niz z manjšo velikostjo in kopirati obstoječe elemente. To lahko storite z uporabo funkcije Array.Copy(), kot je razloženo v razdelku »Dodajanje vrednosti«. Na seznamih C# je odstranjevanje vrednosti veliko enostavnejše in bolj intuitivno. Razred List nudi metodo »odstrani«, ki vam omogoča odstranitev določene vrednosti s seznama.

listName. Odstrani ( element ) ;

Preštejte vrednosti

Če želite prešteti vrednosti v matriki C#, lahko uporabite atribut dolžine matrike. Lastnost dolžine vam poda skupno število vrednosti v matriki.

int štetje = arrayName. Dolžina ;

Če želite prešteti vrednosti na seznamu C#, lahko uporabite funkcijo »štetje« seznama. Skupno število elementov, ki se trenutno nahajajo na seznamu, prav tako vrne atribut »count«.

int štetje = listName. štetje ;

Ponovite vrednosti

Za ponavljanje vrednosti v matriki C# lahko uporabite zanko »for« z dolžino matrike kot pogojem zanke.

za ( int jaz = 0 ; jaz < ArrayName. Dolžina ; jaz ++ ) {

tip e = arrayName [ jaz ] ;

Konzola. WriteLine ( je ) ;

}

Za ponavljanje vrednosti na seznamu C# lahko uporabite zanko »foreach«, saj poenostavlja postopek ponavljanja s samodejnim ponavljanjem elementov.

za vsakogar ( vnesite e v listName ) {

Konzola. WriteLine ( je ) ;

}

Primer 1: nizi C#

Podana koda deklarira in inicializira matriko celih števil z imenom 'Arr' z dolžino 5 in dodeli vrednosti njenim elementom. Elementom matrike so dodeljene vrednosti 11, 12, 13, 14 in 15. Koda nato nadaljuje s prikazom elementov matrike z uporabo zanke »za«. Vsaka komponenta je prikazana v ločeni vrstici z uporabo metode Console.WriteLine().

Po prikazu izvirnih elementov koda spremeni element pri indeksu 2 tako, da mu dodeli novo vrednost 10. Nato koda prikaže spremenjeno matriko s ponovnim ponavljanjem elementov z uporabo zanke »za«. Nazadnje koda prikaže skupno število vrednosti, ki se nahajajo v matriki, z uporabo lastnosti »Arr.Length«, ki daje dolžino matrike.

z uporabo sistema ;

razred Dummy {

statična praznina Glavni ( ) {

int [ ] Arr = novo int [ 5 ] { enajst , 12 , 13 , 14 , petnajst } ;

Konzola. WriteLine ( 'Elementi:' ) ;

za ( int jaz = 0 ; jaz < Arr. Dolžina ; jaz ++ )

{

Konzola. WriteLine ( Arr [ jaz ] ) ;

}

Arr [ 2 ] = 10 ;

Konzola. WriteLine ( 'Spremenjeno polje:' ) ;

za ( int jaz = 0 ; jaz < Arr. Dolžina ; jaz ++ )

{

Konzola. WriteLine ( Arr [ jaz ] ) ;

}

Konzola. WriteLine ( 'Število elementov: ' + Arr. Dolžina ) ;

}

}

Primer 2: Seznami C#

Naslednja podana koda prikazuje uporabo seznama C# za shranjevanje in upravljanje zbirke celih števil. Najprej koda inicializira seznam z imenom »Arr« s petimi celimi števili: 11, 12, 13, 14 in 15. To se doseže z uporabo razreda List in njegovega konstruktorja skupaj s sintakso inicializatorja.

Nato program natisne sporočilo »Elements:« in nadaljuje s ponavljanjem vsakega elementa na seznamu z uporabo zanke »foreach«. Med vsako ponovitvijo se trenutni element natisne na konzolo z uporabo metode Console.WriteLine().

Nato koda spremeni vrednost na indeksu 2 seznama tako, da ji dodeli vrednost 10 (Arr[2] = 10). Ta vrstica spremeni tretji element na seznamu iz 13 v 10. Po spremembi program znova natisne sporočilo »Modified list:« in ponovi posodobljeni seznam ter natisne vsak element v konzolo. Koda nato prikaže število vrednosti na seznamu z uporabo »Arr.Count«. Ta lastnost vrne število elementov, ki so prisotni na seznamu, ki je v naslednjem scenariju 5.

Nazadnje koda odstrani element z vrednostjo 4 s seznama z uporabo metode Arr.Remove(4). Ta metoda išče podano vrednost na seznamu in odstrani njeno prvo pojavitev. Nazadnje program natisne sporočilo »Seznam po odstranitvi:« in še enkrat pregleda seznam ter prikaže vse preostale elemente po odstranitvi.

z uporabo sistema ;

z uporabo sistema. Zbirke . Generično ;

razred Dummy {

statična praznina Glavni ( ) {

Seznam < int > Arr = nov seznam < int > ( ) { enajst , 12 , 13 , 14 , petnajst } ;

Konzola. WriteLine ( 'Elementi:' ) ;

za vsakogar ( int n v prir )

{

Konzola. WriteLine ( n ) ;

}

Arr [ 2 ] = 10 ;

Konzola. WriteLine ( 'Spremenjen seznam:' ) ;

za vsakogar ( int n v prir )

{

Konzola. WriteLine ( n ) ;

}

Konzola. WriteLine ( 'Število elementov: ' + Arr. štetje ) ;

Arr. Odstrani ( 4 ) ;

Konzola. WriteLine ( 'Seznam po odstranitvi:' ) ;

za vsakogar ( int n v prir )

{

Konzola. WriteLine ( n ) ;

}

}

}

Zaključek

Ta vodnik je pokrival osnovne sintaksne razlike med nizi C# in seznami C#. Nizi imajo fiksno dolžino in se do njih dostopa z indeksom, medtem ko imajo seznami dinamično velikost in ponujajo dodatne metode za dodajanje in odstranjevanje elementov. Skupaj s tem smo zagotovili programe s seznami C#, ki prikazujejo deklaracijo, inicializacijo, dostopanje, spreminjanje, štetje in dodajanje elementov.