C# slovník s příklady

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




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

Výstup:

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