V C# je Dictionary generická kolekce, která se obecně používá k ukládání párů klíč/hodnota. Fungování slovníku je velmi podobné negenerickému hashtable . Výhodou Slovníku je, že je generického typu. Slovník je definován pod jmenným prostorem System.Collections.Generic. Má dynamický charakter, což znamená, že velikost slovníku roste podle potřeby. Důležité body:
- Třída Dictionary implementuje
- IDslovník Rozhraní
- IReadOnlyCollection
Rozhraní - IReadOnlyDictionary Rozhraní
- IDslovník Rozhraní
- Ve Slovníku klíč nemůže být null, ale hodnota může být.
- Ve Slovníku musí být klíč jedinečný. Duplicitní klíče nejsou povoleny, pokud se pokusíte použít duplicitní klíč, pak kompilátor vyvolá výjimku.
- Ve Slovníku můžete ukládat pouze stejné typy prvků.
- Kapacita slovníku je počet prvků, které může slovník pojmout.
Jak vytvořit slovník?
Třída slovníku má 7 konstruktérů které se používají k vytvoření slovníku, zde používáme pouze konstruktor Dictionary() a pokud se chcete dozvědět více o konstruktorech, podívejte se C# | Třída slovníku . Slovník(): Tento konstruktor se používá k vytvoření instance třídy Dictionary, která je prázdná, má výchozí počáteční kapacitu a používá výchozí porovnávač rovnosti pro typ klíče následovně: Krok 1: IncludeSystem.Collections.Generic jmenný prostor ve vašem programu pomocí klíčového slova. Syntax:
using System.Collections.Generic;>
Krok 2: Vytvořte slovník pomocí třídy Dictionary, jak je znázorněno níže:
Dictionary dictionary_name = new Dictionary();>
Krok 3: Pokud chcete přidat prvky do svého slovníku, použijte metodu Add() k přidání párů klíč/hodnota do vašeho slovníku. A můžete také přidat pár klíč/hodnota do slovníku bez použití metody Add. Jak je ukázáno v níže uvedeném příkladu. Krok 4: K páru klíč/hodnota slovníku se přistupuje pomocí tři různé způsoby:
- smyčka for: Smyčku for můžete použít pro přístup k párům klíč/hodnota ve Slovníku. Příklad:
CSharp
for>(>int> x=0; x { Console.WriteLine('{0} and {1}', My_dict1.Keys.ElementAt(x), My_dict1[ My_dict1.Keys.ElementAt(x)]); }> |
>
>
- Použití indexu: K jednotlivým párům klíč/hodnota slovníku můžete přistupovat pomocí jeho indexové hodnoty. Zde stačí zadat klíč v indexu, abyste získali hodnotu z daného slovníku, není třeba uvádět index. Indexer vždy bere klíč jako parametr, pokud daný klíč není ve slovníku dostupný, tak dá KeyNotFoundException . Příklad:
CSharp
fonty pro gimp
Console.WriteLine('Value>is>:{0}', My_dicti[1123]);> Console.WriteLine('Value>is>:{0}', My_dicti[1125]);> |
>
>
- Smyčka foreach: Smyčku foreach můžete použít pro přístup k párům klíč/hodnota ve slovníku. Jak je ukázáno v níže uvedeném příkladu, přistupujeme ke slovníku pomocí smyčky foreach.
Příklad:
CSharp
// 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);> >}> >}> }> |
>
>Výstup:
1123 and Welcome 1124 and to 1125 and techcodeview.com a.1 and Dog a.2 and Cat a.3 and Pig>
Jak odstranit prvky ze slovníku?
Ve Slovníku máte povoleno odstraňovat prvky ze Slovníku. Třída Dictionary poskytuje dvě různé metody pro odstranění prvků a tyto metody jsou:
- Průhledná : Tato metoda odstraní všechny klíče a hodnoty ze slovníku.
- Odstranit : Tato metoda odebere hodnotu se zadaným klíčem ze slovníku.
Příklad:
CSharp
// 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>>Můj_dikt => >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>>on>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>>on>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);> > >}> }> |
>
>Výstup:
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>
Jak zkontrolovat dostupnost prvků ve Slovníku?
Ve Slovníku můžete zkontrolovat, zda se daný klíč nebo hodnota nachází v zadaném slovníku či nikoli. Třída Dictionary poskytuje dvě různé metody kontroly a tyto metody jsou:
- ContainsKey : Tato metoda se používá ke kontrole, zda slovník obsahuje zadaný klíč.
- ObsahujeValue : Tato metoda se používá ke kontrole, zda Slovník obsahuje konkrétní hodnotu.
Příklad:
CSharp
// 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>>Můj_dikt => >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...!!');> >}> >}> }> |
>
liška nebo vlk
>Výstup:
Key is not found...!! Value is found...!!>