I C# är Dictionary en generisk samling som vanligtvis används för att lagra nyckel/värdepar. Ordbokens funktion är ganska lik den icke-generiska hashtabellen. Fördelen med Dictionary är att den är generisk. Ordbok definieras under System.Collections.Generic namnutrymme. Den är dynamisk till sin natur innebär att storleken på ordboken växer efter behov. Viktiga punkter:
- Klassen Ordbok implementerar
- ID-ordbok Gränssnitt
- IReadOnlyCollection
Gränssnitt - IReadOnlyDictionary Gränssnitt
- ID-ordbok Gränssnitt
- I ordbok kan nyckeln inte vara null, men värdet kan vara det.
- I ordbok måste nyckeln vara unik. Duplicerade nycklar är inte tillåtna om du försöker använda duplicerade nyckel så kommer kompilatorn att skapa ett undantag.
- I Dictionary kan du bara lagra samma typer av element.
- Kapaciteten hos en ordbok är antalet element som ordboken kan innehålla.
Hur skapar man en ordbok?
Ordboksklassen har 7 konstruktörer som används för att skapa ordboken, här använder vi bara Dictionary() konstruktorn och om du vill lära dig mer om konstruktörer, hänvisa till C# | Ordboksklass . Lexikon(): Den här konstruktorn används för att skapa en instans av klassen Dictionary som är tom, har standardinledande kapacitet och använder standardlikhetsjämföraren för nyckeltypen enligt följande: Steg 1: InkluderaSystem.Collections.Generiskt namnområde i ditt program med hjälp av nyckelord. Syntax:
using System.Collections.Generic;>
Steg 2: Skapa en ordbok med hjälp av Dictionary-klassen enligt nedan:
Dictionary dictionary_name = new Dictionary();>
Steg 3: Om du vill lägga till element i din ordbok, använd metoden Add() för att lägga till nyckel/värdepar i din ordbok. Och du kan också lägga till nyckel/värdepar i ordboken utan att använda Add-metoden. Som visas i exemplet nedan. Steg 4: Nyckel/värdeparet i ordboken nås med tre olika sätt:
- för loop: Du kan använda for loop för att komma åt nyckel/värdeparen i ordboken. Exempel:
CSarp
for>(>int> x=0; x { Console.WriteLine('{0} and {1}', My_dict1.Keys.ElementAt(x), My_dict1[ My_dict1.Keys.ElementAt(x)]); }> |
>
strängmetoder i java
>
- Använda index: Du kan komma åt individuella nyckel/värdepar i ordboken genom att använda dess indexvärde. Här anger du bara nyckeln i indexet för att få värdet från den givna ordboken, du behöver inte ange indexet. Indexer tar alltid nyckeln som en parameter, om den givna nyckeln inte är tillgänglig i ordboken så ger den KeyNotFoundException . Exempel:
CSarp
Console.WriteLine('Value>is>:{0}', My_dicti[1123]);> Console.WriteLine('Value>is>:{0}', My_dicti[1125]);> |
>
>
- foreach loop: Du kan använda foreach loop för att komma åt nyckel-/värdeparen i ordboken. Som visas i exemplet nedan kommer vi åt ordboken med hjälp av en foreach loop.
Exempel:
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>
Hur tar man bort element från ordboken?
I ordboken får du ta bort element från ordboken. Ordboksklassen tillhandahåller två olika metoder för att ta bort element och metoderna är:
- Klar : Denna metod tar bort alla nycklar och värden från ordboken.
- Avlägsna : Denna metod tar bort värdet med den angivna nyckeln från ordboken.
Exempel:
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>
Hur kontrollerar man tillgängligheten av element i ordboken?
I Dictionary kan du kontrollera om den givna nyckeln eller värdet finns i den angivna ordboken eller inte. Ordbokklassen tillhandahåller två olika metoder för kontroll och metoderna är:
- Innehåller nyckel : Denna metod används för att kontrollera om ordboken innehåller den angivna nyckeln.
- InnehållerVärde : Denna metod används för att kontrollera om ordboken innehåller ett specifikt värde.
Exempel:
CSarp
variabelt globalt javascript
// 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...!!>