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...!!');> >}> >}> }> |
>
>
apice in IllustratorProduzione:
Key is not found...!! Value is found...!!>