C # szótár
Szótár generikus osztály rendelkezik feltérképezése a kulcsokat a beállított értékeket. Minden elem bekerül a szótárba, és áll a kapcsolódó értékek írjuk őket. Kibontása az érték a legfontosabb történik nagyon gyorsan, olyan sebességgel közel O (1), mivel szótár osztály van megvalósítva hash tábla.
Míg az objektumot használjuk kulcsfontosságú a szótárban szótár. azt nem kell változtatni úgy, hogy tükrözi a hash kódot. Minden kulcs egy szótár egyedinek kell lennie szerint a szótár a komparátor ellenőrizzük az egyenlőséget. A kulcs nem lehet üres (null), és az értéket, amennyiben Tvalue érték típusú hivatkozás típusát.
Szótár megvalósítását igényli teszt egyenlőséget, amely meghatározza, hogy a kulcsok megegyeznek. Megadhatja a végrehajtási IEqualityComparer általános interfészt. egy konstruktor, hogy vesz egy paraméter összehasonlítóhoz; amennyiben a végrehajtás nincs megadva, akkor az alapértelmezett egyetemes összehasonlító amely ellenőrzi, hogy az egyenlőség (EqualityComparer .Default). Ha TKey típus valósítja univerzális System.IEquatable felület. Az alapértelmezett összehasonlító vizsgálatának egyenlőség ezzel végrehajtását.
Kapacitás szótár gyűjtemény - az elemek száma, amely képes befogadni szótár. Amikor elemeket adnak a gyűjtemény szótár kapacitását automatikusan növelni szükséges átcsoportosításával a belső tömb.
Nagyon nagy objektumok szótár. maximális kapacitása növelhető 2 milliárd elemek 64 bites rendszer, amelyben az attribútum engedélyezett gcAllowVeryLargeObjects konfigurációs elem igazi futás közben.
Az üzemeltető foreach C # nyelv (minden C ++ minden egyes Visual Basic) szükséges meghatározni a típusát minden elem a gyűjteményben. Mivel a szótár egy sor kulcsokat és értékeket itt elem típusa - nem az a fajta kulcs és az érték típusát. Ezek az elemek tartoznak a KeyValuePair típusát. a típust képviselő egy pár kulcs és az érték típusát. Például:
A foreach utasítás egy wrapper körül a számlálóra, így csak olvasni a gyűjtemény, de nem jegyezte meg.
A következő példa kód létrehoz egy üres objektumot szótár sorok húr kulcsok és hozzáadása a módszert alkalmazzák, hogy adjunk több elem. Mint látható, hozzáadása eljárás dob ArgumentException hozzáadása során a pótkulcsot.
A példában használt kivonat értékek Elem tulajdonság (az indexelő C #); hiányában a kért kulcsot ki KeyNotFoundException kivétel kapcsolódó értéket a kulcsot, lehet cserélni.
A példa bemutatja az TryGetValue eljárás hatékonyabb módon letölteni az értékeket egy programot, gyakran akarják használni kulcs érték, nem szerepel a szótárban, és használatát is bemutatja ContainsKey ellenőrzésére szolgáló módszer létezik a kulcsot, mielőtt hívja hozzáadása.
Összefoglalva megállapíthatjuk, hogy a minta, az eljárás Távolítsuk.
verzió információ
NET Framework Támogatott in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0 .NET Framework (Client Profile) Támogatott in: 4, 3.5 Service Pack 1 (SP1) Portable Class Library Támogatott in: : Hordozható osztály könyvtár .NET alkalmazások a Windows Store Támogatott in: Windows 8 .NET alkalmazások a Windows Phone Támogatott in: Windows Phone 8, Silverlight 8.1
További információk a szótár itt