C# ToDictionary módszer

C Todictionary Modszer



A C# ToDictionary funkciója egy LINQ-bővítmény, amely lehetővé teszi egy adatgyűjtemény szótárrá történő átalakítását, amely világos és praktikus módot kínál az entitások külön kulcsokra és kapcsolódó értékekre való leképezésére. Két argumentumot igényel, két delegált vagy lambda kifejezést, egyet a kulcs kiválasztásához, egy továbbit pedig a gyűjtemény minden objektumának értékének kiválasztásához. Ebben a cikkben néhány C# kód példát fogunk használni a ToDictionary függvény használatának bemutatására.

Szintaxis:

Bontsuk fel és értsük meg egyenként a C# ToDictionary függvény következő szintaxisában szereplő összetevőket:



diktált volt = Gyűjtemény. ToDictionary ( kulcsválasztó , elemválasztó ) ;
  • A „var” kulcsszó itt ki van vetve az eredményül kapott „dict” szótár típuskategóriájának meghatározásához. A legtöbb esetben ez a szótár, ahol K a kulcs típusa, V pedig a szótári érték típuskategóriája.
  • A „collection” elem azt a forrásgyűjteményt jelöli, amelyet „dict” szótárrá kíván alakítani. Bármely osztály lehet, amely megvalósítja az IEnumerable interfészt, például egy lista, tömb vagy lekérdezés eredménye.
  • A „keySelector” kulcsszó egy delegált vagy lambda kifejezés, amely meghatározza, hogyan lehet kinyerni a kulcsot a gyűjtemény egyes elemeiből. Egy elemet kap a gyűjteményből argumentumként, és visszaadja az adott elem kulcsértékét. A kulcsnak a gyűjtemény minden eleméhez egyedinek kell lennie, mivel a szótárak nem rendelkezhetnek ismétlődő kulcsokkal.
  • Az „elementSelector” kulcsszó egy delegált vagy lambda kifejezésre utal, amely meghatározza, hogyan lehet kinyerni az értéket a gyűjtemény egyes elemeiből. A gyűjtemény egy elemét is megkapja argumentumként, és megadja az adott elem értékét.

A ToDictionary funkció végrehajtása után egy új szótárobjektum lesz, amelyben a gyűjtemény minden eleme kulcs-érték párként jelenik meg.







1. példa:

Kezdjük újra ezt az útmutatót azzal, hogy egy kódpélda segítségével bemutatjuk a ToDictionary függvény használatát C# nyelven. Lépésről lépésre menjünk végig rajta.



A kód az importált szükséges névterekkel kezdődik: System, System.Collections.Generic és System.Linq. Ezek a névterek biztosítják a szükséges osztályokat és kiterjesztési metódusokat a gyűjteményekkel és a LINQ-val való munkához. Meg van határozva a „Dummy” osztály, amely tartalmazza ennek a C# programnak a „Main” metódusát.



A „Main” metóduson belül létrejön egy „L” nevű lista. Ez a lista három karakterláncelemet tartalmaz, amelyek a felhasználó által választott különböző parfümök nevét képviselik. A ToDictionary metódust az „L” listán hívják. A listát szótárrá alakítja. A lista minden egyes karakterlánc-eleme kulcsként és értékként is szolgál az eredményül kapott szótárban.





A szótár kis- és nagybetűket nem érzékeny kulcs-összehasonlítással jön létre a StringComparer.OrdinalIgnoreCase paraméter használatával, amely elsősorban a kis- és nagybetűk megkülönböztetésére szolgál a kulcsok meglétének ellenőrzésekor. Az „if” utasítás ellenőrzi, hogy a szótár tartalmazza-e a „bombshell” kulcsot, miközben figyelmen kívül hagyja a kis- és nagybetűket. Ha a kulcs megtalálható, a rendszer feldolgozza az „if” részben található kódrészletet. Az „if” blokkon belül a Console.WriteLine(“Bombshell létezik”) utasítás végrehajtásra kerül, amely a „Bombshell létezik” üzenetet nyomtatja ki a konzolra.

rendszer segítségével ;

rendszer segítségével. Gyűjtemények . Generikus ;

rendszer segítségével. Linq ;

osztályú Dummy

{

statikus üres ( )

{

Lista < húr > L = új lista < húr > ( ) { 'BlackOpium' , 'bombahéj' , 'GucciFlora' } ;

parfüm volt = L. ToDictionary ( x => x , x => igaz , StringComparer. OrdinalIgnoreCase ) ;

ha ( Parfüm. ContainsKey ( 'bomba' ) )

{

Konzol. WriteLine ( 'Létezik bomba' ) ;

}

}

}

Mivel a szótár kis- és nagybetűk megkülönböztetésével készült, a „bombshell” billentyű megegyezik a szótár tényleges „Bombhéj” billentyűjével. Ennek eredményeként a „Bombshell létezik” üzenet kerül kinyomtatásra a konzolra, ahogy az a következő mellékelt kimeneti képen látható:



2. példa:

Az előző kódpéldán belül bemutattuk, hogyan lehet egy egyszerű gyűjteményt szótárrá alakítani a ToDictionary funkción keresztül. Most áttérünk egy kicsit fejlettebb C# kódpéldára a C# ToDictionary függvény használatának bemutatására. Bontsuk soronként a kódot.

Ez az illusztrációs kódrészlet ugyanazokat a kötelező névtereket hozza be: System, System.Collections.Generic és System.Linq. Ezek a névterek biztosítják a szükséges osztályokat és kiterjesztési metódusokat a gyűjteményekkel és a LINQ-val való együttműködéshez ehhez a kódpéldához. Meg van határozva a „Dummy” osztály, amely egy belépési pont.

A C# nyelv „Main” metódusán belül egy „L” nevű lista jön létre. Ez a lista az „Adatok” osztály három tárgyát tartalmazza, amelyek a különböző kozmetikai termékeket áraikkal és márkáikkal reprezentálják. Minden adatobjektum inicializálása az objektum inicializáló szintaxisával történik. Az egyes objektumok „Ár” és „Márka” tulajdonságai meghatározott értékekkel vannak beállítva.

Itt jön a ToDictionary módszer. Itt az „L” listán hívják. A listát szótárrá alakítja, ahol a „Price” tulajdonság kulcsként, a „Brand” tulajdonság pedig értékként szerepel. Az eredményül kapott szótár a „Dic” változóhoz van hozzárendelve a következő kódrészletben leírtak szerint. A „foreach” hurok kiesik a „Dic” szótár kulcs-érték párjainak áthívására.

A cikluson belül az egyes párok kulcsa és értéke a KeyValuePair struktúra „Kulcs” és „Érték” tulajdonságaival érhető el. A Console.WriteLine függvény utasítás minden kulcs-érték párt kiírja a konzolra. A kimenet formázása karakterlánc-interpolációval történik, hogy külön jelenítse meg az ár- és a márkainformációkat.

Itt az „Adatok” osztály két tulajdonsággal van definiálva: „Price” (egy kozmetikai termék árát jelző egész szám) és „Brand” (a termék márkanevét jelző karakterlánc).

rendszer segítségével ;

rendszer segítségével. Gyűjtemények . Generikus ;

rendszer segítségével. Linq ;

osztályú Dummy

{

statikus üres ( )

{

Lista < Adat > L = új lista < Adat > ( )

{

új adatok { Ár = 13000 , Márka = 'Huda szépség' } ,

új adatok { Ár = 15000 , Márka = 'Charlotte Telburry' } ,

új adatok { Ár = 11000 , Márka = 'Nars' }

} ;

Szótár < int , húr > December = L. ToDictionary ( p => p. Ár , p => p. Márka ) ;

az egyes ( var v in Dic )

{

Konzol. WriteLine ( $ 'Ár: {v.Key}, Márka: {v.Value}' ) ;

}

}

}

osztály Adatok

{

nyilvános int Ár { kap ; készlet ; }

public string Márka { kap ; készlet ; }

}

A kód végrehajtásakor létrehozza az adatobjektumok listáját, a listát a ToDictionary metódussal szótárrá alakítja, majd a „foreach” ciklus segítségével megjeleníti a szótár kulcs-érték párjait.

Ennek a kódpéldának a kimenete az alábbiakban található. Megjeleníti a szótárban tárolt kozmetikai termékek árait és márkáit konkrét tulajdonságok alapján, kényelmes módot biztosítva az adatok kulcs-érték párokba rendezésére és elérésére. Az előző kód kimenete három rekordot jelenít meg a szótárhoz:

Következtetés

Ez a C# útmutató néhány alapvető és pontos kódillusztráción keresztül bemutatta a C# ToDictionary módszer használatát. Azáltal, hogy világos és kifejező mechanizmust kínál a kulcs-érték párok leírására, a ToDictionary módszer megkönnyíti a gyűjtemény szótárrá alakítását. Ez egy erős C# segédprogram az adatok manipulálására és átalakítására.