Arrays vs Lists: Usage Comparison i C#

Arrays Vs Lists Usage Comparison I C



Et array i C# er et sæt elementer med identiske datatyper og en defineret specifik størrelse. Det repræsenterer en tilstødende del af hukommelsen, hvor elementerne er gemt. Ved at bruge deres indeks tilbyder arrays i C# en hurtig og nem vilkårlig adgang til deres medlemmer. En liste er en dynamisk datastruktur i programmeringssproget C#, der repræsenterer en gruppe identisk type komponenter. I modsætning til arrays kan lister vokse eller krympe i størrelse dynamisk, hvilket giver mulighed for effektiv tilføjelse, fjernelse og ændring af elementer. Både ligheder og forskelle mellem C#-arrays og C#-lister er dækket i denne artikel.

Erklæring:

Arrays erklæres ved hjælp af 'type[] ArrayName;' syntaks, hvor typen angiver typen af ​​medlemmerne i array-samlingen, og 'ArrName' er den titel, der er tildelt arrayet. En erklæring af et array er angivet med firkantede parenteser [].

type [ ] ArrayName = ny type [ ] ;

Lister erklæres ved hjælp af 'List LsName;' syntaks, hvor typen repræsenterer datatypen for elementerne på listen, og 'LsName' er det navn, der gives til listen. Vinkelparenteserne angiver, at det er en generisk typedeklaration.







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

Initialisering:

Arrays bruger krøllede klammeparenteser {} til at omslutte værdierne, mens lister bruger den nye List-konstruktør efterfulgt af krøllede klammeparenteser {} for at omslutte værdierne.



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

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

Tilføjelse af værdier:

Det er afgørende at huske, at C#-arrays har en bestemt størrelse. Hvis en anden størrelse er påkrævet, skal der oprettes et nyt array 'newArr' med den ønskede størrelse (aktuel længde + antal nye værdier). Tilføj det originale array 'OrgArr' til det nye array og tildel de nye værdier til de nye positioner i det nye array og opdater referencen til det nye array.



Array. Kopi ( OrgArr , nyArr , OrgArr. Længde ) ;

nyArr [ OrgArr. Længde ] = 14 ; // ny værdi

nyArr [ OrgArr. Længde + 1 ] = 2 ; // ny værdi

OrgArr = nyArr ; // Opdater referencen int[] NewArr = new int[OrgArr.Length + 2];

Lister giver fleksibilitet med hensyn til størrelsesstyring. Når en liste initialiseres, starter den med en indledende kapacitet, men den kan udvides automatisk, efterhånden som flere elementer tilføjes. Denne dynamiske størrelsesændring gør det muligt for listerne at tilpasse sig skiftende krav. C#-listerne giver en Add()-funktion til at tilføje værdierne til listen. Sådan kan du tilføje værdier til en C#-liste:





Arrays vs Lists : Brugssammenligning i C #

Adgang til værdierne

Værdierne i arraynumrene tilgås ved hjælp af indeksnotationen [], dvs. ved hjælp af indeksnummeret i parentes og gemmes i en anden variabel.

type element = ArrayName [ indeks ] ;

For at få adgang til værdierne i en C#-liste kan du også bruge indeksnotationen [] sammen med den ønskede indeksposition svarende til arrays.



type element = Listenavn [ indeks ] ;

Fjernelse af værdierne

Arrays har en fast længde. For at fjerne elementerne skal der derfor oprettes et nyt array med en mindre størrelse, og de eksisterende elementer skal kopieres. Dette kan gøres ved at bruge Array.Copy()-funktionen som forklaret i afsnittet 'Tilføjelse af værdier'. I C#-lister er det meget enklere og mere intuitivt at fjerne værdierne. Listen-klassen giver en 'fjern'-metode, der giver dig mulighed for at fjerne en bestemt værdi fra listen.

listenavn. Fjerne ( element ) ;

Tæl værdierne

For at tælle værdierne i et C#-array kan du bruge arrayets længdeattribut. Egenskaben length giver dig det samlede antal værdier i arrayet.

int tælle = matrixnavn. Længde ;

For at tælle værdierne i en C#-liste kan du bruge listens 'tælle'-funktion. Den samlede mængde af elementer, der i øjeblikket findes på listen, returneres ligeledes af 'count'-attributten.

int tælle = listenavn. Tælle ;

Gentag værdierne

For at iterere over værdier i et C#-array kan du bruge en 'for'-løkke med arrayets længde som løkkebetingelsen.

til ( int jeg = 0 ; jeg < ArrayName. Længde ; jeg ++ ) {

type e = matrixnavn [ jeg ] ;

Konsol. WriteLine ( det er ) ;

}

For at iterere over værdierne i en C#-liste kan du bruge en 'foreach'-løkke, da den forenkler iterationsprocessen ved automatisk at iterere over elementerne.

for hver ( skriv e i listenavn ) {

Konsol. WriteLine ( det er ) ;

}

Eksempel 1: C#-arrays

Den givne kode erklærer og initialiserer et heltalsarray ved navn 'Arr' med en længde på 5 og tildeler værdierne til dets elementer. De tildelte værdier til array-elementerne er 11, 12, 13, 14 og 15. Koden fortsætter derefter med at vise elementerne i arrayet ved hjælp af en 'for'-løkke. Hver komponent vises på en særskilt linje ved hjælp af Console.WriteLine() metoden.

Efter at have vist de originale elementer, ændrer koden elementet ved indeks 2 ved at tildele det en ny værdi på 10. Dernæst viser koden det modificerede array ved at iterere gennem elementerne igen ved hjælp af en 'for'-løkke. Til sidst viser koden det samlede antal værdier, der findes i arrayet ved hjælp af egenskaben 'Arr.Length', som giver længden af ​​arrayet.

ved hjælp af System ;

klasse Dummy {

statisk ugyldig Hoved ( ) {

int [ ] Arr = ny int [ 5 ] { elleve , 12 , 13 , 14 , femten } ;

Konsol. WriteLine ( 'Elementer:' ) ;

til ( int jeg = 0 ; jeg < Arr. Længde ; jeg ++ )

{

Konsol. WriteLine ( Arr [ jeg ] ) ;

}

Arr [ 2 ] = 10 ;

Konsol. WriteLine ( 'Modificeret array:' ) ;

til ( int jeg = 0 ; jeg < Arr. Længde ; jeg ++ )

{

Konsol. WriteLine ( Arr [ jeg ] ) ;

}

Konsol. WriteLine ( 'Antal elementer: ' + Arr. Længde ) ;

}

}

Eksempel 2: C#-lister

Den følgende medfølgende kode demonstrerer brugen af ​​en C#-liste til at gemme og manipulere en samling af heltal. Først initialiserer koden en liste ved navn 'Arr' med fem heltal: 11, 12, 13, 14 og 15. Dette opnås ved hjælp af List-klassen og dens konstruktør sammen med en initialiseringssyntaks.

Derefter udskriver programmet 'Elementer:'-meddelelsen og fortsætter med at iterere over hvert element på listen ved hjælp af en 'foreach'-løkke. Under hver iteration udskrives det aktuelle element til konsollen ved hjælp af Console.WriteLine() metoden.

Bagefter ændrer koden værdien ved indeks 2 på listen ved at tildele den værdien 10 (Arr[2] = 10). Denne linje ændrer det tredje element på listen fra 13 til 10. Efter ændringen udskriver programmet igen meddelelsen 'Modified list:' og gentager den opdaterede liste og udskriver hvert element til konsollen. Koden viser derefter antallet af værdier på listen ved hjælp af 'Arr.Count'. Denne egenskab returnerer antallet af elementer, der er til stede på listen, som i det følgende scenarie tilfældigvis er 5.

Til sidst fjerner koden elementet med værdien 4 fra listen ved hjælp af Arr.Remove(4) metoden. Denne metode søger efter den angivne værdi på listen og fjerner dens første forekomst. Til sidst udskriver programmet meddelelsen 'Liste efter fjernelse:' og gentager listen endnu en gang og viser hvert resterende element efter fjernelsesoperationen.

ved hjælp af System ;

ved hjælp af System. Samlinger . Generisk ;

klasse Dummy {

statisk ugyldig Hoved ( ) {

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

Konsol. WriteLine ( 'Elementer:' ) ;

for hver ( int n i Arr )

{

Konsol. WriteLine ( n ) ;

}

Arr [ 2 ] = 10 ;

Konsol. WriteLine ( 'Ændret liste:' ) ;

for hver ( int n i Arr )

{

Konsol. WriteLine ( n ) ;

}

Konsol. WriteLine ( 'Antal elementer: ' + Arr. Tælle ) ;

Arr. Fjerne ( 4 ) ;

Konsol. WriteLine ( 'Liste efter fjernelse:' ) ;

for hver ( int n i Arr )

{

Konsol. WriteLine ( n ) ;

}

}

}

Konklusion

Denne vejledning dækkede de grundlæggende syntaksforskelle mellem C#-arrays og C#-lister. Arrays har fast længde og tilgås af indeks, hvorimod listerne er dynamisk størrelse og giver yderligere metoder til at tilføje og fjerne elementerne. Sammen med det leverede vi C#-listeprogrammerne, der viser erklæringen, initialisering, adgang til, ændring, optælling og tilføjelse af elementerne.