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 Fő ( )
{
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
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 Fő ( )
{
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.