C# ToDictionary Method

C Todictionary Method



Ang ToDictionary function sa C# ay isang LINQ extension function na nagbibigay-daan sa iyo na baguhin ang isang koleksyon ng data sa isang diksyunaryo na nag-aalok ng malinaw at praktikal na paraan upang imapa ang mga entity sa mga natatanging key at mga nauugnay na halaga. Nangangailangan ito ng dalawang argumento, dalawang delegado o mga expression ng lambda, isa para sa pagpili ng susi at isa pa para sa pagpili ng value para sa bawat bagay sa koleksyon. Sa artikulong ito, gagamitin namin ang ilang mga halimbawa ng C# code upang ipakita ang paggamit ng ToDictionary function.

Syntax:

Isa-isahin at unawain natin ang bawat bahagi na ibinigay sa loob ng sumusunod na syntax ng C# ToDictionary function:



ay dict = koleksyon. SaDiksyonaryo ( keySelector , elementSelector ) ;
  • Ang keyword na 'var' ay itinapon dito upang tukuyin ang kategorya ng uri ng resultang 'dict' na diksyunaryo. Sa karamihan ng mga kaso, ito ay Dictionary kung saan ang K ay ang uri ng susi at ang V ay ang uri ng kategorya ng halaga ng diksyunaryo.
  • Ang elementong 'collection' ay kumakatawan sa source collection na gusto mong i-convert sa isang 'dict' dictionary. Maaari itong maging anumang klase na nagpapatupad ng interface ng IEnumerable gaya ng isang listahan, array, o resulta ng query.
  • Ang keyword na 'keySelector' ay isang delegado o lambda expression na tumutukoy kung paano i-extract ang key mula sa bawat item sa koleksyon. Nakakakuha ito ng isang elemento mula sa koleksyon bilang isang argumento at ibinabalik ang pangunahing halaga para sa item na iyon. Ang susi ay dapat na natatangi para sa bawat item sa koleksyon, dahil ang mga diksyunaryo ay hindi maaaring magkaroon ng mga duplicate na susi.
  • Ang keyword na 'elementSelector' ay tumutukoy sa isang delegado o lambda na expression na tumutukoy kung paano kunin ang halaga mula sa bawat item sa koleksyon. Nakakakuha din ito ng elemento ng koleksyon bilang argumento at nagbubunga ng halaga para sa item na iyon.

Pagkatapos isagawa ang ToDictionary function, magkakaroon ka ng bagong object ng diksyunaryo kung saan ang bawat item mula sa koleksyon ay kinakatawan bilang key-value pair.







Halimbawa 1:

Magkaroon tayo ng bagong simula sa gabay na ito sa pamamagitan ng pagpapakita ng paggamit ng ToDictionary function sa C# sa tulong ng isang halimbawa ng code. Daanan natin ito nang hakbang-hakbang.



Nagsisimula ang code sa mga kinakailangang namespace na ini-import: System, System.Collections.Generic, at System.Linq. Ang mga namespace na ito ay nagbibigay ng mga kinakailangang klase at pamamaraan ng extension upang gumana sa mga koleksyon at LINQ. Ang 'Dummy' na klase ay tinukoy na naglalaman ng 'Main' na paraan ng C# program na ito.



Sa loob ng 'Main' na pamamaraan, isang listahan na pinangalanang 'L' ay nilikha. Ang listahang ito ay naglalaman ng tatlong elemento ng string na kumakatawan sa mga pangalan ng iba't ibang pabango na pinili ng user. Ang pamamaraang ToDictionary ay tinatawag sa listahang “L”. Ginagawa nitong diksyunaryo ang listahan. Ang bawat elemento ng string sa listahan ay nagsisilbing parehong susi at ang halaga sa resultang diksyunaryo.





Ang diksyunaryo ay nilikha gamit ang isang case-insensitive na paghahambing ng key gamit ang StringComparer.OrdinalIgnoreCase na parameter na pangunahing ginagamit upang tukuyin ang isang case-insensitive na paghahambing kapag tinitingnan ang pagkakaroon ng mga key. Sinusuri ng pahayag na 'kung' kung naglalaman ang diksyunaryo ng key na 'bombshell' habang binabalewala ang case nito. Kung ang susi ay matatagpuan, ang code snippet sa loob ng seksyong 'kung' ay ipoproseso. Sa loob ng block na 'if', ang Console.WriteLine('Bombshell exists') ay ipinapatupad na nagpi-print ng 'Bombshell exists' na mensahe sa console.

gamit ang System ;

gamit ang System. Mga koleksyon . Generic ;

gamit ang System. Linq ;

klase Dummy

{

static walang bisa Pangunahing ( )

{

Listahan < string > L = bagong Listahan < string > ( ) { 'BlackOpium' , 'Bombshell' , 'GucciFlora' } ;

ay Pabango = L. SaDiksyonaryo ( x => x , x => totoo , StringComparer. OrdinalIgnoreCase ) ;

kung ( Pabango. Naglalaman ngKey ( 'bombshell' ) )

{

Console. WriteLine ( 'May bombang umiiral' ) ;

}

}

}

Dahil ang diksyunaryo ay nilikha gamit ang isang case-insensitive na paghahambing, ang 'bombshell' na key ay tumutugma sa aktwal na 'Bombshell' na key sa diksyunaryo. Bilang resulta, ang mensaheng 'May Bombshell' ay naka-print sa console tulad ng ipinapakita sa sumusunod na naka-attach na output na imahe:



Halimbawa 2:

Sa loob ng nakaraang halimbawa ng code, ipinakita namin kung paano mako-convert ang isang simpleng koleksyon sa isang diksyunaryo sa pamamagitan ng ToDictionary function. Ngayon, lilipat tayo patungo sa isang maliit na advanced na halimbawa ng code ng C# para sa pagpapakita ng paggamit ng C# ToDictionary function. Hatiin natin ang linya ng code sa bawat linya.

Nagsisimula ang snippet ng illustration code na ito sa pamamagitan ng pagdadala ng parehong mga compulsory namespace: System, System.Collections.Generic, at System.Linq. Ang mga namespace na ito ay nagbibigay ng mga kinakailangang klase at pamamaraan ng extension upang gumana sa mga koleksyon at LINQ para sa halimbawa ng code na ito. Ang klase ng 'Dummy' ay tinukoy na isang entry point.

Sa loob ng 'Main' na paraan ng C# na wika, isang listahan na pinangalanang 'L' ay nabuo. Naglalaman ang listahang ito ng tatlong bagay ng klase ng 'Data' na kumakatawan sa iba't ibang produktong kosmetiko kasama ang kanilang mga presyo at tatak. Ang bawat object ng data ay sinisimulan gamit ang object initializer syntax. Ang mga katangian ng 'Presyo' at 'Brand' ng bawat bagay ay itinakda na may mga partikular na halaga.

Narito ang paraan ng ToDictionary. Ito ay tinatawag dito sa 'L' na listahan. Kino-convert nito ang listahan sa isang diksyunaryo kung saan ginagamit ang property na 'Price' bilang susi at ang property na 'Brand' ay ginagamit bilang value. Ang resultang diksyunaryo ay itinalaga sa variable na 'Dic' gaya ng nabanggit sa sumusunod na ibinigay na snippet ng code. Ang 'foreach' na loop ay na-cast-off upang tawagan ang mga pares ng key-value sa diksyunaryo ng 'Dic.'

Sa loob ng loop, ang key at value ng bawat pares ay ina-access gamit ang 'Key' at 'Value' na mga katangian ng KeyValuePair na istraktura. Ini-print ng Console.WriteLine function statement ang bawat key-value pair sa console. Ang output ay naka-format gamit ang string interpolation upang ipakita ang presyo at impormasyon ng brand nang hiwalay.

Dito, tinukoy ang klase ng 'Data' na may dalawang katangian: 'Presyo' (isang integer na kumakatawan sa presyo ng isang produktong kosmetiko) at 'Brand' (isang string na kumakatawan sa pangalan ng tatak ng isang produkto).

gamit ang System ;

gamit ang System. Mga koleksyon . Generic ;

gamit ang System. Linq ;

klase Dummy

{

static walang bisa Pangunahing ( )

{

Listahan < Data > L = bagong Listahan < Data > ( )

{

bagong Data { Presyo = 13000 , Tatak = 'Huda Beauty' } ,

bagong Data { Presyo = 15000 , Tatak = 'Charlotte Telburry' } ,

bagong Data { Presyo = 11000 , Tatak = 'Nars' }

} ;

Diksyunaryo < int , string > Dec = L. SaDiksyonaryo ( p => p. Presyo , p => p. Tatak ) ;

foreach ( var v sa Dic )

{

Console. WriteLine ( $ 'Presyo: {v.Key}, Brand: {v.Value}' ) ;

}

}

}

Data ng klase

{

pampubliko int Presyo { makuha ; itakda ; }

pampublikong string Brand { makuha ; itakda ; }

}

Kapag naisakatuparan ang code, gagawa ito ng listahan ng mga object ng data, iko-convert ang listahan sa isang diksyunaryo gamit ang ToDictionary method, at pagkatapos ay ipapakita ang key-value pairs ng diksyunaryo gamit ang 'foreach' loop.

Ang output para sa halimbawa ng code na ito ay ibinigay sa sumusunod. Ipinapakita nito ang mga presyo at tatak ng mga produktong kosmetiko na naka-imbak sa diksyunaryo batay sa mga partikular na katangian, na nagbibigay ng maginhawang paraan upang ayusin at i-access ang data sa mga pares ng key-value. Ang output ng nakaraang code ay nagpapakita ng tatlong mga tala para sa diksyunaryo:

Konklusyon

Ang C# na gabay na ito ay nagpakita ng paggamit ng C# ToDictionary method sa pamamagitan ng ilang basic at precise code illustrations. Sa pamamagitan ng pag-aalok ng isang malinaw at nagpapahayag na mekanismo upang ilarawan ang mga pares ng key-value, ginagawang mas madali ng ToDictionary na paraan na gawing diksyunaryo ang isang koleksyon. Ito ay isang malakas na C# utility upang manipulahin at baguhin ang data.