Dizionario C# con esempi

In C#, Dictionary è una raccolta generica generalmente utilizzata per archiviare coppie chiave/valore. Il funzionamento di Dictionary è abbastanza simile alla tabella hash non generica. Il vantaggio del dizionario è che è di tipo generico. Il dizionario è definito nello spazio dei nomi System.Collections.Generic. È di natura dinamica, quindi la dimensione del dizionario cresce in base alle necessità. Punti importanti:

  • La classe Dictionary implementa il file
    • IDizionario Interfaccia
    • Collezione IReadOnly Interfaccia
    • IReadOnlyDictionary Interfaccia
    • IDizionario Interfaccia
  • Nel Dizionario, la chiave non può essere nulla, ma il valore può esserlo.
  • Nel Dizionario, la chiave deve essere univoca. Le chiavi duplicate non sono consentite se si tenta di utilizzare una chiave duplicata, il compilatore genererà un'eccezione.
  • Nel Dizionario puoi memorizzare solo gli stessi tipi di elementi.
  • La capacità di un dizionario è il numero di elementi che il dizionario può contenere.

Come creare il dizionario?

La classe del dizionario ha 7 costruttori che vengono utilizzati per creare il dizionario, qui utilizziamo solo il costruttore Dictionary() e se vuoi saperne di più sui costruttori fai riferimento C# | Classe dizionario . Dizionario(): Questo costruttore viene utilizzato per creare un'istanza della classe Dictionary che è vuota, ha la capacità iniziale predefinita e utilizza l'operatore di confronto di uguaglianza predefinito per il tipo di chiave come segue: Passo 1: Include lo spazio dei nomiSystem.Collections.Generic nel tuo programma con l'aiuto dell'uso della parola chiave. Sintassi:

using System.Collections.Generic; 

Passo 2: Crea un dizionario utilizzando la classe Dictionary come mostrato di seguito:

Dictionary dictionary_name = new Dictionary(); 

Passaggio 3: Se desideri aggiungere elementi al tuo dizionario, utilizza il metodo Add() per aggiungere coppie chiave/valore al tuo dizionario. E puoi anche aggiungere una coppia chiave/valore nel dizionario senza utilizzare il metodo Aggiungi. Come mostrato nell'esempio seguente. Passaggio 4: È possibile accedere alla coppia chiave/valore del dizionario utilizzando tre diversi modi:

    Ciclo for: è possibile utilizzare il ciclo for per accedere alle coppie chiave/valore del dizionario. Esempio:

CSharp




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

    Utilizzando l'indice: è possibile accedere alla singola coppia chiave/valore del dizionario utilizzando il relativo valore di indice. Qui, basta specificare la chiave nell'indice per ottenere il valore dal dizionario specificato, non è necessario specificare l'indice. L'indicizzatore accetta sempre la chiave come parametro, se la chiave specificata non è disponibile nel dizionario, la fornisce KeyNotFoundException . Esempio:

CSharp




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

    Ciclo foreach: puoi utilizzare il ciclo foreach per accedere alle coppie chiave/valore del dizionario. Come mostrato nell'esempio seguente, accediamo al dizionario utilizzando un ciclo foreach.

Esempio:

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

Produzione:

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

Come rimuovere elementi dal dizionario?

Nel Dizionario, puoi rimuovere elementi dal Dizionario. La classe Dictionary fornisce due diversi metodi per rimuovere elementi e i metodi sono:

  • Chiaro : Questo metodo rimuove tutte le chiavi e i valori dal dizionario.
  • Rimuovere : Questo metodo rimuove il valore con la chiave specificata dal dizionario.

Esempio:

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> >Mio_detto => > 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> >lui> 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> >lui> 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);> > > }> }>

Produzione:

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 

Come verificare la disponibilità degli elementi nel Dizionario?

Nel Dizionario, puoi verificare se la chiave o il valore specificato sono presenti o meno nel dizionario specificato. La classe Dictionary fornisce due diversi metodi per il controllo e i metodi sono:

  • Contiene la chiave : Questo metodo viene utilizzato per verificare se il dizionario contiene la chiave specificata.
  • ContieneValore : Questo metodo viene utilizzato per verificare se il dizionario contiene un valore specifico.

Esempio:

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

Produzione:

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