få ordboknøkkel etter verdi
Hvordan får jeg en ordboknøkkel etter verdi i C#?
Dictionary<string, string> types = new Dictionary<string, string>()
{
{"1", "one"},
{"2", "two"},
{"3", "three"}
};
Jeg vil ha noe som dette:
getByValueKey(string value);
getByValueKey("one")
må returnere "1"
.
Hva er den beste måten å gjøre dette på? Kanskje HashTable, SortedLists?
334
3
Verdiene trenger ikke nødvendigvis å være unike, så du må gjøre et oppslag. Du kan gjøre noe sånt som dette:
Hvis verdiene er unike og settes inn sjeldnere enn de leses, oppretter du en omvendt ordbok der verdier er nøkler og nøkler er verdier.
Det kan du gjøre:
KeyValuePair
's i ordboken (som vil være en betydelig ytelse hit hvis du har en rekke oppføringer i ordboken)Bruk metode 1 hvis ytelse ikke er et hensyn, bruk metode 2 hvis minne ikke er et hensyn.
Alle nøkler må også være unike, men verdiene trenger ikke å være unike. Du kan ha mer enn én nøkkel med den angitte verdien.
Er det noen grunn til at du ikke kan reversere forholdet mellom nøkkel og verdi?
Jeg har en veldig enkel måte å gjøre dette på. Det fungerte perfekt for meg.