C# ToDictionary metode

C Todictionary Metode



ToDictionary-funktionen i C# er en LINQ-udvidelsesfunktion, der giver dig mulighed for at transformere en dataindsamling til en ordbog, som tilbyder en klar og praktisk måde at kortlægge entiteterne til forskellige nøgler og relaterede værdier. Det kræver to argumenter, to delegerede eller lambda-udtryk, et til at vælge nøglen og et yderligere til at vælge værdien for hvert objekt i samlingen. I denne artikel vil vi bruge nogle C#-kodeeksempler til at demonstrere anvendelsen af ​​ToDictionary-funktionen.

Syntaks:

Lad os nedbryde og forstå hver komponent, der leveres inden for følgende syntaks af C# ToDictionary-funktionen én efter én:



blev dikteret = kollektion. Til Ordbog ( nøglevælger , elementvælger ) ;
  • Nøgleordet 'var' er kasseret her for at definere typekategorien for den resulterende 'dict'-ordbog. I de fleste tilfælde er det Dictionary, hvor K er typen af ​​nøglen, og V er typekategorien for ordbogsværdien.
  • Elementet 'samling' repræsenterer den kildesamling, du vil konvertere til en 'dict'-ordbog. Det kan være enhver klasse, der implementerer IEnumerable-grænsefladen, såsom en liste, et array eller et forespørgselsresultat.
  • Nøgleordet 'keySelector' er et delegat- eller lambda-udtryk, der specificerer, hvordan nøglen udtrækkes fra hvert element i samlingen. Den får et element fra samlingen som et argument og giver nøgleværdien for det pågældende element tilbage. Nøglen skal være unik for hvert emne i samlingen, da ordbøger ikke kan have duplikerede nøgler.
  • Nøgleordet 'elementSelector' refererer til et delegat- eller lambda-udtryk, der specificerer, hvordan værdien udtrækkes fra hvert element i samlingen. Det får også et element af samlingen som et argument og giver værdien for den vare.

Efter at have udført ToDictionary-funktionen, vil du have et nyt ordbogsobjekt, hvor hvert element fra samlingen er repræsenteret som et nøgle-værdi-par.







Eksempel 1:

Lad os få en frisk start på denne guide ved at demonstrere brugen af ​​ToDictionary-funktionen i C# ved hjælp af et kodeeksempel. Lad os gennemgå det trin for trin.



Koden begynder med, at de nødvendige navnerum importeres: System, System.Collections.Generic og System.Linq. Disse navnerum giver de nødvendige klasser og udvidelsesmetoder til at arbejde med samlinger og LINQ. Klassen 'Dummy' er defineret, som indeholder 'Main'-metoden for dette C#-program.



Inde i 'Main'-metoden oprettes en liste med navnet 'L'. Denne liste indeholder tre strengelementer, der repræsenterer navnene på forskellige parfumer efter brugerens valg. ToDictionary-metoden kaldes på 'L'-listen. Det konverterer listen til en ordbog. Hvert strengelement på listen fungerer som både nøglen og værdien i den resulterende ordbog.





Ordbogen er oprettet med en sammenligning af store og små bogstaver ved hjælp af parameteren StringComparer.OrdinalIgnoreCase, som primært bruges til at specificere en sammenligning uden forskel på store og små bogstaver, når der kontrolleres for eksistensen af ​​nøgler. En 'hvis'-sætning kontrollerer, om ordbogen indeholder 'bombe'-nøglen, mens den ignorerer dens store og små bogstaver. Hvis nøglen findes, vil kodestykket i 'hvis'-sektionen blive behandlet. Inde i 'if'-blokken udføres Console.WriteLine('Bombshell exists')-sætningen, som udskriver 'Bombshell exists'-meddelelsen til konsollen.

ved hjælp af System ;

ved hjælp af System. Samlinger . Generisk ;

ved hjælp af System. Linq ;

klasse Dummy

{

statisk ugyldig Hoved ( )

{

Liste < snor > L = ny liste < snor > ( ) { 'BlackOpium' , 'bombe' , 'GucciFlora' } ;

    var Perfume = L. Til Ordbog ( x => x , x => rigtigt , StringComparer. OrdinalIgnoreCase ) ;

hvis ( Parfume. Indeholder nøgle ( 'bombe' ) )

{

Konsol. WriteLine ( 'Bombe findes' ) ;

}

}

}

Da ordbogen er oprettet med en sammenligning uden forskel på store og små bogstaver, svarer 'bombe'-tasten til den faktiske 'Bombshell'-tast i ordbogen. Som et resultat bliver meddelelsen 'Bombshell exists' udskrevet på konsollen som vist i følgende vedhæftede outputbillede:



Eksempel 2:

I det foregående kodeeksempel demonstrerede vi, hvordan en simpel samling kan konverteres til en ordbog via ToDictionary-funktionen. Nu vil vi gå hen imod et lille avanceret kodeeksempel på C# til demonstration af C# ToDictionary-funktionens brug. Lad os nedbryde koden linje for linje.

Dette illustrationskodestykke starter med at indsætte de samme obligatoriske navnerum: System, System.Collections.Generic og System.Linq. Disse navnerum giver de nødvendige klasser og udvidelsesmetoder til at arbejde med samlinger og LINQ for dette kodeeksempel. Klassen 'Dummy' er defineret, som er et indgangspunkt.

Inde i 'Main'-metoden i C#-sproget dannes en liste med navnet 'L'. Denne liste indeholder tre objekter i klassen 'Data', som repræsenterer de forskellige kosmetiske produkter med deres priser og mærker. Hvert dataobjekt initialiseres ved hjælp af objektinitialiseringssyntaksen. Egenskaberne 'Pris' og 'Mærke' for hvert objekt er indstillet med specifikke værdier.

Her kommer ToDictionary-metoden. Det hedder her på 'L'-listen. Den konverterer listen til en ordbog, hvor egenskaben 'Pris' bruges som nøglen og egenskaben 'Mærke' bruges som værdi. Den resulterende ordbog er tildelt 'Dic'-variablen som nævnt i det følgende medfølgende kodestykke. En 'foreach'-løkke er cast-off for at kalde over nøgleværdi-parrene i 'Dic'-ordbogen.

Inde i løkken tilgås nøglen og værdien af ​​hvert par ved hjælp af egenskaberne 'Nøgle' og 'Værdi' i strukturen KeyValuePair. Funktionssætningen Console.WriteLine udskriver hvert nøgleværdipar til konsollen. Outputtet formateres ved hjælp af strenginterpolation for at vise pris- og mærkeoplysningerne separat.

Her er 'Data'-klassen defineret med to egenskaber: 'Pris' (et heltal, der repræsenterer prisen på et kosmetisk produkt) og 'Mærke' (en streng, der repræsenterer et produkts mærkenavn).

ved hjælp af System ;

ved hjælp af System. Samlinger . Generisk ;

ved hjælp af System. Linq ;

klasse Dummy

{

statisk ugyldig Hoved ( )

{

Liste < Data > L = ny liste < Data > ( )

{

nye data { Pris = 13000 , Mærke = 'Huda Beauty' } ,

nye data { Pris = 15.000 , Mærke = 'Charlotte Telburry' } ,

nye data { Pris = 11000 , Mærke = 'Nars' }

} ;

Ordbog < int , snor > dec = L. Til Ordbog ( s => s. Pris , s => s. Mærke ) ;

for hver ( var v i Dic )

{

Konsol. WriteLine ( $ 'Pris: {v.Key}, mærke: {v.Value}' ) ;

}

}

}

klasse Data

{

offentlig int Pris { ; sæt ; }

offentlig streng Brand { ; sæt ; }

}

Når koden udføres, opretter den en liste over dataobjekter, konverterer listen til en ordbog ved hjælp af ToDictionary-metoden og viser derefter nøgleværdi-parrene i ordbogen ved hjælp af 'foreach'-løkken.

Outputtet for dette kodeeksempel findes i det følgende. Det viser priser og mærker af kosmetiske produkter, der er gemt i ordbogen baseret på specifikke egenskaber, hvilket giver en bekvem måde at organisere og få adgang til dataene i nøgleværdi-par. Outputtet fra den forrige kode viser tre poster for ordbogen:

Konklusion

Denne C#-guide demonstrerede brugen af ​​C# ToDictionary-metoden via nogle grundlæggende og præcise kodeillustrationer. Ved at tilbyde en klar og udtryksfuld mekanisme til at beskrive nøgleværdi-parrene gør ToDictionary-metoden det nemmere at omdanne en samling til en ordbog. Det er et stærkt C#-værktøj til at manipulere og transformere dataene.