Diccionari C# amb exemples

En C#, Dictionary és una col·lecció genèrica que s'utilitza generalment per emmagatzemar parells clau/valor. El funcionament del Diccionari és bastant semblant al de la taula hash no genèrica. L'avantatge de Dictionary és que és de tipus genèric. El diccionari es defineix a l'espai de noms System.Collections.Generic. És de naturalesa dinàmica, vol dir que la mida del diccionari augmenta segons la necessitat. Punts importants:

  • La classe Diccionari implementa el
    • IDiccionari Interfície
    • IReadOnlyCollection Interfície
    • IReadOnlyDictionary Interfície
    • IDiccionari Interfície
  • Al diccionari, la clau no pot ser nul·la, però el valor sí.
  • Al diccionari, la clau ha de ser única. Les claus duplicades no es permeten si intenteu utilitzar una clau duplicada, llavors el compilador llançarà una excepció.
  • Al Diccionari, només podeu emmagatzemar els mateixos tipus d'elements.
  • La capacitat d'un diccionari és el nombre d'elements que pot contenir el diccionari.

Com crear el diccionari?

La classe de diccionari té 7 constructors que s'utilitzen per crear el Diccionari, aquí només fem servir el constructor Dictionary() i si voleu obtenir més informació sobre els constructors, consulteu C# | Classe de diccionari . Diccionari(): Aquest constructor s'utilitza per crear una instància de la classe Dictionary que està buida, té la capacitat inicial predeterminada i utilitza el comparador d'igualtat per defecte per al tipus de clau de la manera següent: Pas 1: Inclou l'espai de noms System.Collections.Generic al teu programa amb l'ajuda de la paraula clau. Sintaxi:

using System.Collections.Generic; 

Pas 2: Creeu un diccionari amb la classe de diccionari tal com es mostra a continuació:

Dictionary dictionary_name = new Dictionary(); 

Pas 3: Si voleu afegir elements al vostre diccionari, feu servir el mètode Add() per afegir parells clau/valor al vostre diccionari. I també podeu afegir el parell clau/valor al diccionari sense utilitzar el mètode Add. Com es mostra a l'exemple següent. Pas 4: S'accedeix al parell clau/valor del Diccionari mitjançant tres diferents maneres:

    bucle for: podeu utilitzar bucle for per accedir als parells clau/valor del diccionari. Exemple:

CSharp




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

    Ús de l'índex: podeu accedir al parell clau/valor individual del diccionari mitjançant el seu valor d'índex. Aquí, només heu d'especificar la clau a l'índex per obtenir el valor del diccionari donat, sense necessitat d'especificar l'índex. L'indexador sempre pren la clau com a paràmetre, si la clau donada no està disponible al diccionari, dóna KeyNotFoundException . Exemple:

CSharp




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

    bucle foreach: podeu utilitzar el bucle foreach per accedir als parells clau/valor del diccionari. Com es mostra a l'exemple següent, accedim al diccionari mitjançant un bucle foreach.

Exemple:

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> >El meu_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>>> > 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);> > }> > }> }>

Sortida:

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

Com eliminar elements del diccionari?

Al Diccionari, podeu eliminar elements del Diccionari. La classe de diccionari proporciona dos mètodes diferents per eliminar elements i els mètodes són:

  • Clar : Aquest mètode elimina totes les claus i valors del diccionari.
  • Eliminar : Aquest mètode elimina el valor amb la clau especificada del diccionari.

Exemple:

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> >El meu_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> >ell>>> > ele.Key, ele.Value);> > }> > Console.WriteLine();> > > // Using Remove() method> > My_dict.Remove(1123);> > > // After Remove() method> > foreach> (KeyValuePair <> int> ,> string> >ell>>> > 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);> > > }> }>

Sortida:

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 

Com comprovar la disponibilitat d'elements al Diccionari?

Al Diccionari, podeu comprovar si la clau o el valor donats estan o no al diccionari especificat. La classe Diccionari proporciona dos mètodes diferents per comprovar i els mètodes són:

  • Conté la clau : Aquest mètode s'utilitza per comprovar si el Diccionari conté la clau especificada.
  • ContéValor : Aquest mètode s'utilitza per comprovar si el Diccionari conté un valor específic.

Exemple:

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

Sortida:

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