Metoda C# ToDictionary

Metoda C Todictionary



Funcția ToDictionary în C# este o funcție de extensie LINQ care vă permite să transformați o colecție de date într-un dicționar care oferă o modalitate clară și practică de a mapa entitățile la chei distincte și valori aferente. Necesită două argumente, doi delegați sau expresii lambda, unul pentru alegerea cheii și unul suplimentar pentru alegerea valorii pentru fiecare obiect din colecție. În acest articol, vom folosi câteva exemple de cod C# pentru a demonstra utilizările funcției ToDictionary.

Sintaxă:

Să defalcăm și să înțelegem fiecare componentă care este furnizată în următoarea sintaxă a funcției C# ToDictionary una câte una:



a fost dict = Colectie. La Dicţionar ( keySelector , elementSelector ) ;
  • Cuvântul cheie „var” este eliminat aici pentru a defini categoria de tip a dicționarului „dict” rezultat. În cele mai multe cazuri, este Dictionary unde K este tipul cheii și V este categoria de tip a valorii dicționarului.
  • Elementul „colecție” reprezintă colecția sursă pe care doriți să o convertiți într-un dicționar „dict”. Poate fi orice clasă care implementează interfața IEnumerable, cum ar fi o listă, o matrice sau un rezultat de interogare.
  • Cuvântul cheie „keySelector” este o expresie delegată sau lambda care specifică modul în care se extrage cheia din fiecare element din colecție. Primește un element din colecție ca argument și returnează valoarea cheii pentru acel element. Cheia ar trebui să fie unică pentru fiecare articol din colecție, deoarece dicționarele nu pot avea chei duplicate.
  • Cuvântul cheie „elementSelector” se referă la o expresie delegată sau lambda care specifică cum se extrage valoarea din fiecare element din colecție. De asemenea, primește un element al colecției ca argument și oferă valoarea pentru acel element.

După executarea funcției ToDictionary, veți avea un nou obiect dicționar în care fiecare articol din colecție este reprezentat ca o pereche cheie-valoare.







Exemplul 1:

Să începem din nou acest ghid, demonstrând utilizarea funcției ToDictionary în C# cu ajutorul unui exemplu de cod. Să trecem prin asta pas cu pas.



Codul începe cu importarea spațiilor de nume necesare: System, System.Collections.Generic și System.Linq. Aceste spații de nume oferă clasele și metodele de extensie necesare pentru a lucra cu colecții și LINQ. Este definită clasa „Dummy” care conține metoda „Main” a acestui program C#.



În cadrul metodei „Main”, este creată o listă numită „L”. Această listă conține trei elemente șir care reprezintă numele diferitelor parfumuri la alegerea utilizatorului. Metoda ToDictionary este apelată pe lista „L”. Acesta convertește lista într-un dicționar. Fiecare element șir din listă servește atât ca cheie, cât și ca valoare în dicționarul rezultat.





Dicționarul este creat cu o comparație de chei care nu ține seama de majuscule și minuscule, utilizând parametrul StringComparer.OrdinalIgnoreCase, care este utilizat în principal pentru a specifica o comparație care nu ține seama de majuscule și minuscule atunci când se verifică existența cheilor. O declarație „dacă” verifică dacă dicționarul conține cheia „bombă” în timp ce îi ignoră majusculele. Dacă cheia este găsită, fragmentul de cod din secțiunea „dacă” va fi procesat. În interiorul blocului „dacă”, este executată instrucțiunea Console.WriteLine(„Bombshell exists”) care tipărește mesajul „Bombshell exists” pe consolă.

folosind System ;

folosind System. Colecții . Generic ;

folosind System. Linq ;

manechin de clasă

{

static vid Principal ( )

{

Listă < şir > L = Listă nouă < şir > ( ) { „BlackOpium” , 'Bombă' , „GucciFlora” } ;

a fost Parfum = L. La Dicţionar ( X => X , X => Adevărat , StringComparer. OrdinalIgnoreCase ) ;

dacă ( Parfum. Conține cheia ( 'bombă' ) )

{

Consolă. WriteLine ( „Bomba există” ) ;

}

}

}

Deoarece dicționarul este creat cu o comparație care nu face distincție între majuscule și minuscule, cheia „bombă” se potrivește cu cheia „bombă” reală din dicționar. Ca rezultat, mesajul „Bombshell exists” este tipărit pe consolă așa cum este afișat în următoarea imagine de ieșire atașată:



Exemplul 2:

În exemplul de cod anterior, am demonstrat cum o colecție simplă poate fi convertită într-un dicționar prin intermediul funcției ToDictionary. Acum, ne vom îndrepta către un exemplu de cod puțin avansat de C# pentru demonstrarea utilizării funcției C# ToDictionary. Să defalcăm codul linie cu linie.

Acest fragment de cod ilustrativ începe prin introducerea acelorași spații de nume obligatorii: System, System.Collections.Generic și System.Linq. Aceste spații de nume oferă clasele și metodele de extensie necesare pentru a lucra cu colecții și LINQ pentru acest exemplu de cod. Este definită clasa „Dummy”, care este un punct de intrare.

În cadrul metodei „Main” a limbajului C#, se formează o listă numită „L”. Această listă conține trei obiecte din clasa „Date” care reprezintă diferitele produse cosmetice cu prețurile și mărcile lor. Fiecare obiect de date este inițializat folosind sintaxa de inițializare a obiectelor. Proprietățile „Preț” și „Brand” ale fiecărui obiect sunt setate cu valori specifice.

Aici vine metoda ToDictionary. Este numit aici pe lista „L”. Acesta convertește lista într-un dicționar în care proprietatea „Preț” este folosită ca cheie și proprietatea „Brand” este folosită ca valoare. Dicționarul rezultat este atribuit variabilei „Dic”, așa cum este menționat în următorul fragment de cod furnizat. O buclă „foreach” este eliminată pentru a apela perechile cheie-valoare din dicționarul „Dic”.

În interiorul buclei, cheia și valoarea fiecărei perechi sunt accesate folosind proprietățile „Key” și „Value” ale structurii KeyValuePair. Instrucțiunea funcției Console.WriteLine imprimă fiecare pereche cheie-valoare pe consolă. Ieșirea este formatată folosind interpolarea șirurilor pentru a afișa separat informațiile despre preț și marcă.

Aici, clasa „Date” este definită cu două proprietăți: „Preț” (un număr întreg care reprezintă prețul unui produs cosmetic) și „Brand” (un șir care reprezintă numele mărcii unui produs).

folosind System ;

folosind System. Colecții . Generic ;

folosind System. Linq ;

manechin de clasă

{

static gol Principal ( )

{

Listă < Date > L = Listă nouă < Date > ( )

{

Date noi { Preț = 13000 , Marca = „Huda Beauty” } ,

Date noi { Preț = 15000 , Marca = „Charlotte Telburry” } ,

Date noi { Preț = 11000 , Marca = 'Nars' }

} ;

Dicţionar < int , şir > Dec = L. La Dicţionar ( p => p. Preț , p => p. Marca ) ;

pentru fiecare ( var v în Dic )

{

Consolă. WriteLine ( $ „Preț: {v.Key}, Brand: {v.Value}” ) ;

}

}

}

Class Data

{

public int Preț { obține ; a stabilit ; }

șir public Brand { obține ; a stabilit ; }

}

Când codul este executat, acesta creează o listă de obiecte de date, convertește lista într-un dicționar folosind metoda ToDictionary și apoi afișează perechile cheie-valoare ale dicționarului folosind bucla „foreach”.

Ieșirea pentru acest exemplu de cod este furnizată în cele ce urmează. Acesta arată prețurile și mărcile produselor cosmetice care sunt stocate în dicționar pe baza proprietăților specifice, oferind o modalitate convenabilă de organizare și accesare a datelor în perechi cheie-valoare. Ieșirea codului anterior arată trei înregistrări pentru dicționar:

Concluzie

Acest ghid C# a demonstrat utilizarea metodei C# ToDictionary prin intermediul unor ilustrații de cod de bază și precise. Oferind un mecanism clar și expresiv pentru a descrie perechile cheie-valoare, metoda ToDictionary facilitează transformarea unei colecții într-un dicționar. Este un utilitar C# puternic pentru a manipula și transforma datele.