En ordbok er en nyttig datastruktur som lar deg lagre nøkkelverdi-par. Du kan effektivt få tilgang til en verdi fra ordboken ved å bruke nøkkelen.
Ordbøker i C# støtter handlinger som å fjerne en verdi eller iterere over hele settet med verdier.
Hva er en ordbok i C#?
En C#-ordbok er en av de viktigste datastrukturene du kan lære om. Det er litt som Java HashMap-datastrukturen. Nøklene må være unike, men de kan være av nesten alle typer. En enkel ordbok bruker skalarverdier.
For eksempel har dette datasettet en ID for et kjæledyr som nøkkel og kjæledyrets navn som verdien:
{1001, "Mia"},
{1002, "Oscar"},
{1003, "Birdie"},
{1004, "Blå"},
{1005, "Leo"},
{1006, "Travis"}
Denne strukturen lar deg få tilgang til data ved å bruke den spesielle nøkkelen som refererer til en post. Du kan for eksempel hente posten med verdien Birdie ved å referere til det med oppslagsnøkkelen 1003.
Hvordan lage en ordbok
For å lage en ordbok må du spesifisere objekttypen for både nøkkelen og verdien.
- Lag ordboken. I dette eksemplet er nøkkelen et heltall og verdien for hver post er en streng.
Ordbok<int, streng> kjæledyr = ny Ordbok<int, streng>();
- Du må bruke System. Samlinger. Generisk navneområde som inneholder Ordbok-klassen. Sørg for at du gjør det øverst i filen:
ved hjelp av System. Samlinger. Generisk;
Hvordan legge til elementer i ordboken
Du kan legge til elementer i ordboken under eller etter initialiseringen.
- Du kan legge til elementer mens du initialiserer ordboken. For å gjøre det, legg til noen verdier i krøllete parenteser etter den første nye ordboksetningen.
Ordbok<int, streng> kjæledyr = ny Ordbok<int, streng>()
{
{1001, "Mia"},
{1002, "Oscar"},
{1003, "Birdie"},
{1004, "Blå"},
{1005, "Leo"},
{1006, "Travis"}
}; - Hvis du allerede har opprettet ordboken, kan du bruke ordbokens innebygde Add()-metode.
kjæledyr. Legge til(1007, "Snøhvit");
Du kan ikke legge til en verdi for en nøkkel som allerede eksisterer. Hvis du prøver å gjøre det, får du et ArgumentException.
Du kan ikke bruke en null verdi som nøkkel for en oppføring i en ordbok. Du kan imidlertid lagre en nullverdi i en ordbok.
Hvordan legge til objekter i ordboken
Hvis du bruker en oBjektorientert programmering stil, har du sannsynligvis minst én klasse som du bruker til å lage objekter med. La oss si at du hadde en klasse som lagret detaljer om kjæledyr:
Du kan legge til objekter opprettet fra denne klassen i en ordbok.
- Sørg for at du oppretter ordboken med kjæledyr-objekttypen spesifisert for verdien.
Ordbok<int, Pet> petObjects = ny Ordbok<int, Pet>();
- Lag ditt kjæledyrobjekt.
Pet mia = ny Kjæledyr(1001, "Mia", ny Dato tid(2010, 6, 29), 9.0,
ny Dato tid(2022, 05, 02)); - Legg til det nye kjæledyrobjektet i ordboken.
petObjects. Legge til(1001, mia);
Hvordan få tilgang til et element i ordboken
Du kan få tilgang til et element i ordboken ved å bruke tasten.
- Bruk variabelnavnet for ordboken, etterfulgt av tasten rundt et par firkantede parenteser. Dette vil returnere objektet som er lagret i den aktuelle delen av ordboken.
var pet = petObjects[1001];
Konsoll. WriteLine (pet.name);
Hvordan iterere over ordboken
Du kan bruke en for hver løkke for å iterere over en ordbok:
- Bruk en foreach for å iterere over hvert nøkkelverdipar i ordboken. Forutsatt at du kalte iteratoren din inngang, kan du få tilgang til nøkkelen og verdien ved å bruke inngang. Nøkkel og inngang. Verdi.
for hver (KeyValuePair<int, Pet> oppføring i petObjects)
{
// skriv ut nøkkelen
Konsoll. WriteLine (oppføring. Nøkkel);// skriv ut navnet på objektet for den posten
Konsoll. WriteLine (oppføring. Verdi.navn);
}
Hvordan oppdatere et element i en ordbok
Du kan oppdatere et element ved å overskrive verdien i ordboken.
- Hvis du har enkle objekttyper i ordboken din, kan du overskrive en verdi av en post direkte.
kjæledyr[1001] = "Maya";
- Hvis du har lagt til objekter i ordboken din, kan du overskrive en verdi til et helt nytt objekt.
Kjæledyrkanin = ny Kjæledyr(1001, "Kanin", ny Dato tid(2021, 8, 1), 3.0, ny Dato tid(2021, 8, 4));
petObjects[1001] = kanin; - Hvis du har et objekt i ordboken, kan du også oppdatere en enkelt egenskap. Du kan overskrive verdien av eiendommen direkte eller bruke en setter.
petObjects[1001].name = "Maya";
// ELLER
petObjects[1001].setName("Maya");
Hvordan slette et element i en ordbok
Du kan velge å slette et enkelt element eller alle elementer.
- For å slette et enkelt element, bruk ordbokens innebygde fjern()-metode. Skriv inn nøkkelen til posten du vil slette som argument.
petObjects. Ta vekk(1002);
- For å slette alle elementer i ordboken, bruk ordbokens innebygde Clear()-metode
petObjects. Klar();
Datastrukturer i C#
Denne opplæringen dekket hvordan du lager en ordbok i C#, og hvordan du legger til elementer i ordboken. I tillegg har den også dekket hvordan du oppdaterer, sletter og itererer over ordboken.
Hvis du ønsker å forbedre ordforrådet for datastrukturer, kan du begynne å utforske mer avanserte datastrukturer. Noen eksempler på disse inkluderer Fibonacci-haugen, AVL-treet eller Red Black Tree.
3 avanserte datastrukturer enhver programmerer bør kjenne til
Les Neste
Relaterte temaer
- Programmering
- Ordbok
- Programmering
Om forfatteren
Sharlene er teknisk skribent ved MUO og jobber også fulltid innen programvareutvikling. Hun har en bachelor i IT og har tidligere erfaring innen kvalitetssikring og universitetsveiledning. Sharlene elsker å spille og spille piano.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere