Arrays vs Lists: Usage Comparison i C#

Arrays Vs Lists Usage Comparison I C



En matrise i C# er et sett med elementer med identiske datatyper og en definert spesifikk størrelse. Den representerer en tilstøtende del av minnet der elementene lagres. Ved å bruke indeksen deres, tilbyr arrayene i C# en rask og enkel vilkårlig tilgang til medlemmene. En liste er en dynamisk datastruktur i programmeringsspråket C# som representerer en gruppe med identisk type komponenter. I motsetning til matriser, kan lister vokse eller krympe i størrelse dynamisk, noe som muliggjør effektiv tillegg, fjerning og modifikasjon av elementer. Både likheter og forskjeller mellom C#-matriser og C#-lister er dekket i denne artikkelen.

Erklæring:

Matriser er deklarert ved å bruke 'type[] ArrayName;' syntaks der typen angir typen til medlemmene i matrisesamlingen, og 'ArrName' er tittelen som er tilordnet til matrisen. En erklæring av en matrise er angitt med firkantede parenteser [].

type [ ] ArrayName = ny type [ ] ;

Lister er deklarert ved å bruke 'List LsName;' syntaks der typen representerer datatypen til elementene i listen, og 'LsName' er navnet som er gitt til listen. Vinkelparentesene indikerer at det er en generisk typedeklarasjon.







Liste < type > liste navn = ny liste < type > ( ) ;

Initialisering:

Matriser bruker krøllete klammeparenteser {} for å omslutte verdiene, mens lister bruker den nye List-konstruktøren etterfulgt av krøllete klammeparenteser {} for å omslutte verdiene.



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

Liste < type > liste navn = ny liste < type > { v1 , v2 , v3 , ... } ;

Legge til verdier:

Det er viktig å huske at C#-arrayene har en bestemt størrelse. Hvis en annen størrelse er nødvendig, må en ny matrise 'newArr' opprettes med ønsket størrelse (nåværende lengde + antall nye verdier). Legg til den opprinnelige matrisen 'OrgArr' til den nye matrisen og tilordne de nye verdiene til de nye posisjonene i den nye matrisen og oppdater referansen til den nye matrisen.



Array. Kopiere ( OrgArr , newArr , OrgArr. Lengde ) ;

newArr [ OrgArr. Lengde ] = 14 ; // ny verdi

newArr [ OrgArr. Lengde + 1 ] = 2 ; // ny verdi

OrgArr = newArr ; // Oppdater referansen int[] NewArr = new int[OrgArr.Length + 2];

Lister gir fleksibilitet når det gjelder størrelsesstyring. Når en liste initialiseres, starter den med en innledende kapasitet, men den kan utvides automatisk etter hvert som flere elementer legges til. Denne funksjonen for dynamisk endring av størrelse lar listene tilpasse seg endrede krav. C#-listene gir en Add()-funksjon for å legge til verdiene til listen. Slik kan du legge til verdier til en C#-liste:





Arrays vs Lists : Brukssammenligning i C #

Få tilgang til verdiene

Verdiene i matrisenumrene åpnes ved å bruke indeksnotasjonen [], dvs. ved å bruke indeksnummeret i parentes og lagres i en annen variabel.

type element = ArrayName [ indeks ] ;

For å få tilgang til verdiene i en C#-liste, kan du også bruke indeksnotasjonen [] sammen med ønsket indeksposisjon som ligner på arrays.



type element = Liste navn [ indeks ] ;

Fjerning av verdier

Matriser har en bestemt lengde. Derfor, for å fjerne elementene, må en ny matrise opprettes med en mindre størrelse, og de eksisterende elementene må kopieres. Dette kan gjøres ved å bruke Array.Copy()-funksjonen som forklart i delen 'Legge til verdier'. I C#-lister er det mye enklere og mer intuitivt å fjerne verdiene. List-klassen gir en 'fjern'-metode som lar deg fjerne en bestemt verdi fra listen.

liste navn. Fjerne ( element ) ;

Tell verdiene

For å telle verdiene i en C#-matrise, kan du bruke matrisens lengdeattributt. Lengde-egenskapen gir deg det totale antallet verdier i matrisen.

int telle = arrayName. Lengde ;

For å telle verdiene i en C#-liste, kan du bruke listens 'count'-funksjon. Den totale mengden av elementer som for øyeblikket finnes i listen, returneres også av 'count'-attributtet.

int telle = liste navn. Telle ;

Gjenta verdiene

For å iterere over verdier i en C#-matrise, kan du bruke en 'for'-løkke med matrisens lengde som løkkebetingelse.

til ( int Jeg = 0 ; Jeg < ArrayName. Lengde ; Jeg ++ ) {

type e = arrayName [ Jeg ] ;

Konsoll. WriteLine ( Det er ) ;

}

For å iterere over verdiene i en C#-liste, kan du bruke en 'foreach'-løkke da den forenkler iterasjonsprosessen ved automatisk å iterere over elementene.

for hver ( skriv e i listenavn ) {

Konsoll. WriteLine ( Det er ) ;

}

Eksempel 1: C#-matriser

Den gitte koden erklærer og initialiserer en heltallsmatrise kalt 'Arr' med en lengde på 5 og tildeler verdiene til elementene. De tilordnede verdiene til array-elementene er 11, 12, 13, 14 og 15. Koden fortsetter deretter med å vise elementene i arrayen ved å bruke en 'for'-løkke. Hver komponent vises på en distinkt linje ved å bruke Console.WriteLine()-metoden.

Etter å ha vist de originale elementene, modifiserer koden elementet ved indeks 2 ved å tildele det en ny verdi på 10. Deretter viser koden den modifiserte matrisen ved å iterere gjennom elementene igjen ved å bruke en 'for'-løkke. Til slutt viser koden det totale antallet verdier som ligger i matrisen ved å bruke 'Arr.Length'-egenskapen som gir lengden på matrisen.

bruker System ;

klasse Dummy {

statisk tomrom Hoved ( ) {

int [ ] Arr = ny int [ 5 ] { elleve , 12 , 1. 3 , 14 , femten } ;

Konsoll. WriteLine ( 'Elementer:' ) ;

til ( int Jeg = 0 ; Jeg < Arr. Lengde ; Jeg ++ )

{

Konsoll. WriteLine ( Arr [ Jeg ] ) ;

}

Arr [ 2 ] = 10 ;

Konsoll. WriteLine ( 'Modifisert array:' ) ;

til ( int Jeg = 0 ; Jeg < Arr. Lengde ; Jeg ++ )

{

Konsoll. WriteLine ( Arr [ Jeg ] ) ;

}

Konsoll. WriteLine ( 'Antall elementer: ' + Arr. Lengde ) ;

}

}

Eksempel 2: C#-lister

Følgende kode viser bruken av en C#-liste for å lagre og manipulere en samling av heltall. Først initialiserer koden en liste kalt 'Arr' med fem heltall: 11, 12, 13, 14 og 15. Dette oppnås ved å bruke List-klassen og dens konstruktør sammen med en initialiseringssyntaks.

Deretter skriver programmet ut 'Elements:'-meldingen og fortsetter å iterere over hvert element i listen ved å bruke en 'foreach'-løkke. Under hver iterasjon skrives det gjeldende elementet ut til konsollen ved å bruke Console.WriteLine()-metoden.

Etterpå endrer koden verdien ved indeks 2 på listen ved å tildele den verdien 10 (Arr[2] = 10). Denne linjen endrer det tredje elementet i listen fra 13 til 10. Etter endringen, skriver programmet igjen 'Modified list:'-meldingen og itererer over den oppdaterte listen, og skriver ut hvert element til konsollen. Koden viser deretter antall verdier i listen ved å bruke 'Arr.Count'. Denne egenskapen returnerer antallet elementer som er til stede i listen, som i det følgende scenariet tilfeldigvis er 5.

Til slutt fjerner koden elementet med verdien 4 fra listen ved å bruke Arr.Remove(4)-metoden. Denne metoden søker etter den angitte verdien i listen og fjerner den første forekomsten. Til slutt skriver programmet 'Liste etter fjerning:'-meldingen og itererer over listen en gang til, og viser hvert gjenværende element etter fjerningsoperasjonen.

bruker System ;

bruker System. Samlinger . Generisk ;

klasse Dummy {

statisk tomrom Hoved ( ) {

Liste < int > Arr = ny liste < int > ( ) { elleve , 12 , 1. 3 , 14 , femten } ;

Konsoll. WriteLine ( 'Elementer:' ) ;

for hver ( int n i Arr )

{

Konsoll. WriteLine ( n ) ;

}

Arr [ 2 ] = 10 ;

Konsoll. WriteLine ( 'Endret liste:' ) ;

for hver ( int n i Arr )

{

Konsoll. WriteLine ( n ) ;

}

Konsoll. WriteLine ( 'Antall elementer: ' + Arr. Telle ) ;

Arr. Fjerne ( 4 ) ;

Konsoll. WriteLine ( 'Liste etter fjerning:' ) ;

for hver ( int n i Arr )

{

Konsoll. WriteLine ( n ) ;

}

}

}

Konklusjon

Denne veiledningen dekket de grunnleggende syntaksforskjellene mellom C#-matrisene og C#-listene. Arrayene har fast lengde og er tilgjengelig via indeks, mens listene har dynamisk størrelse og gir ytterligere metoder for å legge til og fjerne elementene. Sammen med det ga vi C#-listeprogrammene som viser frem erklæringen, initialisering, tilgang til, modifisering, telling og tilføyelse av elementene.