C# Ordbok med eksempler
I C# er Dictionary en generisk samling som vanligvis brukes til å lagre nøkkel/verdi-par. Arbeidet med Dictionary er ganske likt den ikke-generiske hashtabellen. Fordelen med ordbok er at den er en generisk type. Ordbok er definert under System.Collections.Generisk navneområde. Det er dynamisk i naturen betyr at størrelsen på ordboken vokser i henhold til behovet. Viktige punkter:
- Ordbok-klassen implementerer
- ID-ordbok Grensesnitt
- IReadOnlyCollection
Grensesnitt - IReadOnlyDictionary Grensesnitt
- ID-ordbok Grensesnitt
- I ordbok kan ikke nøkkelen være null, men verdien kan være det.
- I ordbok må nøkkelen være unik. Dupliserte nøkler er ikke tillatt hvis du prøver å bruke duplikatnøkkel, vil kompilatoren gi et unntak.
- I ordbok kan du bare lagre samme typer elementer.
- Kapasiteten til en ordbok er antallet elementer som ordboken kan inneholde.
Hvordan lage ordboken?
Ordbokklassen har 7 konstruktører som brukes til å lage ordboken, her bruker vi kun Dictionary()-konstruktøren og hvis du vil lære mer om konstruktører, se C# | Ordbokklasse . Ordbok(): Denne konstruktøren brukes til å lage en forekomst av Dictionary-klassen som er tom, har standard initialkapasitet og bruker standard likhetssammenligner for nøkkeltypen som følger: Trinn 1: IncludeSystem.Collections.Generisk navneområde i programmet ditt ved hjelp av nøkkelord. Syntaks:
using System.Collections.Generic;
Steg 2: Lag en ordbok ved å bruke Ordbok-klassen som vist nedenfor:
Dictionary dictionary_name = new Dictionary();
Trinn 3: Hvis du vil legge til elementer i ordboken din, bruk Add()-metoden for å legge til nøkkel/verdi-par i ordboken din. Og du kan også legge til nøkkel/verdi-par i ordboken uten å bruke Add-metoden. Som vist i eksemplet nedenfor. Trinn 4: Nøkkel/verdi-paret til ordboken åpnes ved å bruke tre forskjellige måter:
- for loop: Du kan bruke for loop for å få tilgang til nøkkel/verdi-parene i ordboken. Eksempel:
CSarp
for> (> int> x=0; x { Console.WriteLine('{0} and {1}', My_dict1.Keys.ElementAt(x), My_dict1[ My_dict1.Keys.ElementAt(x)]); }> |
- Bruke indeks: Du kan få tilgang til individuelle nøkkel-/verdipar i ordboken ved å bruke indeksverdien. Her spesifiserer du bare nøkkelen i indeksen for å få verdien fra den gitte ordboken, du trenger ikke å spesifisere indeksen. Indexer tar alltid nøkkelen som en parameter, hvis den gitte nøkkelen ikke er tilgjengelig i ordboken, så gir den KeyNotFoundException . Eksempel:
CSarp
Console.WriteLine('Value> is> :{0}', My_dicti[1123]);> Console.WriteLine('Value> is> :{0}', My_dicti[1125]);> |
- foreach loop: Du kan bruke foreach loop for å få tilgang til nøkkel/verdi-parene til ordboken. Som vist i eksemplet nedenfor får vi tilgang til ordboken ved å bruke en foreach loop.
Eksempel:
CSarp
// C# program to illustrate how> // to create a dictionary> using> System;> using> System.Collections.Generic;> class> GFG {> > // Main Method> > static> public> void> Main () {> > > // Creating a dictionary> > // using Dictionary class> > Dictionary <> int> ,> string> >My_dict1 => > new> Dictionary <> int> ,> string> >();> > > // Adding key/value pairs> > // in the Dictionary> > // Using Add() method> > My_dict1.Add(1123, 'Welcome');> > My_dict1.Add(1124, 'to');> > My_dict1.Add(1125, 'techcodeview.com');> > > foreach> (KeyValuePair <> int> ,> string> >ele1> in> My_dict1)> > {> > Console.WriteLine('{0} and {1}',> > ele1.Key, ele1.Value);> > }> > Console.WriteLine();> > > // Creating another dictionary> > // using Dictionary class> > // adding key/value pairs without> > // using Add method> > Dictionary <> string> ,> string> >My_dict2 => > new> Dictionary <> string> ,> string> >(){> > {'a.1', 'Dog'},> > {'a.2', 'Cat'},> > {'a.3', 'Pig'} };> > > foreach> (KeyValuePair <> string> ,> string> >ele2>> in> My_dict2)> > {> > Console.WriteLine('{0} and {1}', ele2.Key, ele2.Value);> > }> > }> }> |
Produksjon:
1123 and Welcome 1124 and to 1125 and techcodeview.com a.1 and Dog a.2 and Cat a.3 and Pig
Hvordan fjerne elementer fra ordboken?
I ordboken har du lov til å fjerne elementer fra ordboken. Ordbokklassen gir to forskjellige metoder for å fjerne elementer, og metodene er:
- Klar : Denne metoden fjerner alle nøkler og verdier fra ordboken.
- Fjerne : Denne metoden fjerner verdien med den angitte nøkkelen fra ordboken.
Eksempel:
CSarp
// C# program to illustrate how> // remove key/value pairs from> // the dictionary> using> System;> using> System.Collections.Generic;> class> GFG {> > // Main Method> > static> public> void> Main() {> > > // Creating a dictionary> > // using Dictionary class> > Dictionary <> int> ,> string> >My_dict => > new> Dictionary <> int> ,> string> >();> > > // Adding key/value pairs in the> > // Dictionary Using Add() method> > My_dict.Add(1123, 'Welcome');> > My_dict.Add(1124, 'to');> > My_dict.Add(1125, 'techcodeview.com');> > > // Before Remove() method> > foreach> (KeyValuePair <> int> ,> string> >han> in> My_dict)> > {> > Console.WriteLine('{0} and {1}',> > ele.Key, ele.Value);> > }> > Console.WriteLine();> > > // Using Remove() method> > My_dict.Remove(1123);> > > // After Remove() method> > foreach> (KeyValuePair <> int> ,> string> >han> in> My_dict)> > {> > Console.WriteLine('{0} and {1}',> > ele.Key, ele.Value);> > }> > Console.WriteLine();> > > > // Using Clear() method> > My_dict.Clear();> > > Console.WriteLine('Total number of key/value '+> > 'pairs present> in> My_dict:{0}', My_dict.Count);> > > }> }> |
Produksjon:
1123 and Welcome 1124 and to 1125 and techcodeview.com 1124 and to 1125 and techcodeview.com Total number of key/value pairs present in My_dict:0
Hvordan sjekke tilgjengeligheten av elementer i ordboken?
I Ordbok kan du sjekke om den gitte nøkkelen eller verdien finnes i den angitte ordboken eller ikke. Ordbok-klassen gir to forskjellige metoder for kontroll, og metodene er:
- InneholderNøkkel : Denne metoden brukes til å sjekke om ordboken inneholder den angitte nøkkelen.
- Inneholder Verdi : Denne metoden brukes til å sjekke om ordboken inneholder en bestemt verdi.
Eksempel:
CSarp
// C# program to illustrate how> // to check the given key or> // value present in the dictionary> // or not> using> System;> using> System.Collections.Generic;> class> GFG {> > // Main Method> > static> public> void> Main () {> > > // Creating a dictionary> > // using Dictionary class> > Dictionary <> int> ,> string> >My_dict => > new> Dictionary <> int> ,> string> >();> > > // Adding key/value pairs in the> > // Dictionary Using Add() method> > My_dict.Add(1123, 'Welcome');> > My_dict.Add(1124, 'to');> > My_dict.Add(1125, 'techcodeview.com');> > > // Using ContainsKey() method to check> > // the specified key is present or not> > if> (My_dict.ContainsKey(1122)==> true> )> > {> > Console.WriteLine('Key> is> found...!!');> > }> > else> > {> > Console.WriteLine('Key> is> not found...!!');> > }> > > // Using ContainsValue() method to check> > // the specified value is present or not> > if> (My_dict.ContainsValue('techcodeview.com')==> true> )> > {> > Console.WriteLine('Value> is> found...!!');> > }> > else> > {> > Console.WriteLine('Value> is> not found...!!');> > }> > }> }> |
Produksjon:
Key is not found...!! Value is found...!!