In C# ist Dictionary eine generische Sammlung, die im Allgemeinen zum Speichern von Schlüssel/Wert-Paaren verwendet wird. Die Funktionsweise von Dictionary ist der nicht generischen Hashtabelle ziemlich ähnlich. Der Vorteil von Dictionary besteht darin, dass es sich um einen generischen Typ handelt. Das Wörterbuch ist im System.Collections.Generic-Namespace definiert. Es ist dynamischer Natur, d. h. die Größe des Wörterbuchs wächst je nach Bedarf. Wichtige Punkte:
- Die Dictionary-Klasse implementiert die
- Wörterbuch Schnittstelle
- IReadOnlyCollection
Schnittstelle - IReadOnlyDictionary Schnittstelle
- Wörterbuch Schnittstelle
- Im Dictionary kann der Schlüssel nicht null sein, der Wert jedoch.
- Im Wörterbuch muss der Schlüssel eindeutig sein. Doppelte Schlüssel sind nicht zulässig. Wenn Sie versuchen, doppelte Schlüssel zu verwenden, löst der Compiler eine Ausnahme aus.
- Im Dictionary können Sie nur Elemente desselben Typs speichern.
- Die Kapazität eines Wörterbuchs ist die Anzahl der Elemente, die das Wörterbuch enthalten kann.
Wie erstelle ich das Wörterbuch?
Wörterbuchklasse hat 7 Konstrukteure die zum Erstellen des Wörterbuchs verwendet werden. Hier verwenden wir nur den Dictionary()-Konstruktor. Wenn Sie mehr über Konstruktoren erfahren möchten, lesen Sie weiter C# | Wörterbuchklasse . Wörterbuch(): Dieser Konstruktor wird verwendet, um eine Instanz der Dictionary-Klasse zu erstellen, die leer ist, die standardmäßige Anfangskapazität hat und den standardmäßigen Gleichheitsvergleicher für den Schlüsseltyp wie folgt verwendet: Schritt 1: Fügen Sie den Namespace System.Collections.Generic mithilfe des Schlüsselworts in Ihr Programm ein. Syntax:
using System.Collections.Generic;>
Schritt 2: Erstellen Sie ein Wörterbuch mit der Dictionary-Klasse wie unten gezeigt:
Dictionary dictionary_name = new Dictionary();>
Schritt 3: Wenn Sie Elemente zu Ihrem Wörterbuch hinzufügen möchten, verwenden Sie die Add()-Methode, um Schlüssel/Wert-Paare zu Ihrem Wörterbuch hinzuzufügen. Sie können dem Wörterbuch auch Schlüssel/Wert-Paare hinzufügen, ohne die Add-Methode zu verwenden. Wie im folgenden Beispiel gezeigt. Schritt 4: Der Zugriff auf das Schlüssel/Wert-Paar des Wörterbuchs erfolgt über drei verschiedene Wege:
- for-Schleife: Sie können eine for-Schleife verwenden, um auf die Schlüssel/Wert-Paare des Wörterbuchs zuzugreifen. Beispiel:
CSharp
eine Million in Zahlen
for>(>int> x=0; x { Console.WriteLine('{0} and {1}', My_dict1.Keys.ElementAt(x), My_dict1[ My_dict1.Keys.ElementAt(x)]); }> |
>
>
- Verwenden des Index: Sie können auf einzelne Schlüssel/Wert-Paare des Wörterbuchs zugreifen, indem Sie dessen Indexwert verwenden. Hier geben Sie einfach den Schlüssel im Index an, um den Wert aus dem angegebenen Wörterbuch abzurufen. Es ist nicht erforderlich, den Index anzugeben. Der Indexer verwendet immer den Schlüssel als Parameter. Wenn der angegebene Schlüssel nicht im Wörterbuch verfügbar ist, gibt er ihn an KeyNotFoundException . Beispiel:
CSharp
Console.WriteLine('Value>is>:{0}', My_dicti[1123]);> Console.WriteLine('Value>is>:{0}', My_dicti[1125]);> |
>
>
- foreach-Schleife: Sie können die foreach-Schleife verwenden, um auf die Schlüssel/Wert-Paare des Wörterbuchs zuzugreifen. Wie im folgenden Beispiel gezeigt, greifen wir mithilfe einer foreach-Schleife auf das Wörterbuch zu.
Beispiel:
CSharp
Java-Vergleich
// 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);> >}> >}> }> |
>
>Ausgabe:
1123 and Welcome 1124 and to 1125 and techcodeview.com a.1 and Dog a.2 and Cat a.3 and Pig>
Wie entferne ich Elemente aus dem Wörterbuch?
Im Wörterbuch können Sie Elemente aus dem Wörterbuch entfernen. Die Wörterbuchklasse bietet zwei verschiedene Methoden zum Entfernen von Elementen. Die Methoden sind:
- Klar : Diese Methode entfernt alle Schlüssel und Werte aus dem Wörterbuch.
- Entfernen : Diese Methode entfernt den Wert mit dem angegebenen Schlüssel aus dem Wörterbuch.
Beispiel:
CSharp
Konvertieren Sie String in Int
// 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>>er>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>>er>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);> > >}> }> |
>
UDP-Protokoll
>Ausgabe:
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>
Wie überprüfe ich die Verfügbarkeit von Elementen im Wörterbuch?
Im Wörterbuch können Sie prüfen, ob der angegebene Schlüssel oder Wert im angegebenen Wörterbuch vorhanden ist oder nicht. Die Dictionary-Klasse stellt zwei verschiedene Methoden zur Überprüfung bereit. Die Methoden sind:
- EnthältSchlüssel : Mit dieser Methode wird überprüft, ob das Dictionary den angegebenen Schlüssel enthält.
- EnthältWert : Mit dieser Methode wird überprüft, ob das Dictionary einen bestimmten Wert enthält.
Beispiel:
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>>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...!!');> >}> >}> }> |
>
>Ausgabe:
Key is not found...!! Value is found...!!>