C# Ordbog med eksempler

I C# er ordbog en generisk samling, som generelt bruges til at gemme nøgle/værdi-par. Ordbogens virkemåde ligner meget den ikke-generiske hashtabel. Fordelen ved ordbog er, at den er generisk. Ordbog er defineret under System.Collections.Generisk navneområde. Den er dynamisk af natur betyder, at størrelsen af ​​ordbogen vokser i overensstemmelse med behovet. Vigtige punkter:

  • Ordbogsklassen implementerer
    • ID-ordbog Interface
    • IReadOnly Collection Interface
    • IReadOnly Dictionary Interface
    • ID-ordbog Interface
  • I ordbog kan nøglen ikke være nul, men værdi kan være.
  • I ordbog skal nøglen være unik. Duplikatnøgler er ikke tilladt, hvis du forsøger at bruge duplikatnøgle, vil compileren kaste en undtagelse.
  • I ordbog kan du kun gemme de samme typer elementer.
  • En ordbogs kapacitet er antallet af elementer, som ordbogen kan indeholde.

Hvordan opretter man en ordbog?

Ordbogsklassen har 7 konstruktører som bruges til at lave ordbogen, her bruger vi kun Dictionary()-konstruktøren og hvis du vil lære mere om konstruktører, så se C# | Ordbogsklasse . Ordbog(): Denne konstruktør bruges til at oprette en forekomst af klassen Ordbog, der er tom, har standardindledende kapacitet og bruger standard lighedssammenligneren for nøgletypen som følger: Trin 1: InkluderSystem.Collections.Generisk navneområde i dit program ved hjælp af nøgleord. Syntaks:

using System.Collections.Generic; 

Trin 2: Opret en ordbog ved hjælp af ordbogsklassen som vist nedenfor:

Dictionary dictionary_name = new Dictionary(); 

Trin 3: Hvis du vil tilføje elementer i din ordbog, så brug Add()-metoden til at tilføje nøgle/værdi-par i din ordbog. Og du kan også tilføje nøgle/værdi-par i ordbogen uden at bruge Tilføj metode. Som vist i nedenstående eksempel. Trin 4: Nøgle/værdi-parret i ordbogen tilgås vha tre forskellige veje:

    for loop: Du kan bruge for loop til at få adgang til nøgle/værdi-parrene i ordbogen. Eksempel:

CSarp




for> (> int> x=0; x { Console.WriteLine('{0} and {1}', My_dict1.Keys.ElementAt(x), My_dict1[ My_dict1.Keys.ElementAt(x)]); }>

    Brug af indeks: Du kan få adgang til individuelle nøgle/værdipar i ordbogen ved at bruge dens indeksværdi. Her skal du blot angive nøglen i indekset for at få værdien fra den givne ordbog, ingen grund til at angive indekset. Indexer tager altid nøglen som en parameter, hvis den givne nøgle ikke er tilgængelig i ordbogen, så giver den KeyNotFoundException . Eksempel:

CSarp




Console.WriteLine('Value> is> :{0}', My_dicti[1123]);> Console.WriteLine('Value> is> :{0}', My_dicti[1125]);>

    foreach loop: Du kan bruge foreach loop til at få adgang til nøgle/værdi-parrene i ordbogen. Som vist i nedenstående eksempel får vi adgang til ordbogen ved hjælp af 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);> > }> > }> }>

Produktion:

1123 and Welcome 1124 and to 1125 and techcodeview.com a.1 and Dog a.2 and Cat a.3 and Pig 

Hvordan fjerner man elementer fra ordbogen?

I Ordbog har du lov til at fjerne elementer fra Ordbogen. Ordbogsklassen giver to forskellige metoder til at fjerne elementer, og metoderne er:

  • Klar : Denne metode fjerner alle nøgler og værdier fra ordbogen.
  • Fjerne : Denne metode fjerner værdien med den angivne nøgle fra ordbogen.

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);> > > }> }>

Produktion:

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 kontrollerer man tilgængeligheden af ​​elementer i ordbogen?

I Ordbog kan du kontrollere, om den givne nøgle eller værdi findes i den angivne ordbog eller ej. Ordbogsklassen giver to forskellige metoder til kontrol, og metoderne er:

  • Indeholder nøgle : Denne metode bruges til at kontrollere, om ordbogen indeholder den angivne nøgle.
  • Indeholder Værdi : Denne metode bruges til at kontrollere, om ordbogen indeholder en bestemt værdi.

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...!!');> > }> > }> }>

Produktion:

Key is not found...!! Value is found...!!