Viac na
získať kľúč slovníka podľa hodnoty
Ako získam kľúč slovníka podľa hodnoty v jazyku C#?
Dictionary<string, string> types = new Dictionary<string, string>()
{
{"1", "one"},
{"2", "two"},
{"3", "three"}
};
Chcem niečo také:
getByValueKey(string value);
getByValueKey("one")
musí vrátiť "1"
.
Aký je najlepší spôsob, ako to urobiť? Možno HashTable, SortedLists?
334
3
Hodnoty nemusia byť nevyhnutne jedinečné, takže musíte vykonať vyhľadávanie. Môžete to urobiť takto:
Ak sú hodnoty jedinečné a vkladajú sa menej často ako čítajú, potom vytvorte inverzný slovník, kde hodnoty sú kľúče a kľúče sú hodnoty.
Mohli by ste to urobiť:
KeyValuePair
's v slovníku (čo bude znamenať značný výkonnostný zásah, ak máte v slovníku množstvo položiek)Ak nezáleží na výkone, použite metódu 1, ak nezáleží na pamäti, použite metódu 2.
Takisto všetky kľúče musia byť jedinečné, ale hodnoty nemusia byť jedinečné. Môžete mať viac ako jeden kľúč so zadanou hodnotou.
Existuje nejaký dôvod, prečo nemôžete obrátiť vzťah kľúč-hodnota?
Mám na to veľmi jednoduchý spôsob. Mne sa osvedčil dokonale.