sleutel van woordenboek op waarde krijgen
Hoe krijg ik een sleutel van een woordenboek op waarde in C#?
Dictionary<string, string> types = new Dictionary<string, string>()
{
{"1", "one"},
{"2", "two"},
{"3", "three"}
};
Ik wil zoiets als dit:
getByValueKey(string value);
getByValueKey("one")
moet "1"
teruggeven.
Wat is de beste manier om dit te doen? Misschien HashTable, SortedLists?
334
3
Waarden hoeven niet per se uniek te zijn, dus moet je een lookup doen. Je kunt zoiets als dit doen:
Als waarden uniek zijn en minder vaak worden ingevoegd dan gelezen, maak dan een inverse dictionary waarin waarden sleutels zijn en sleutels waarden.
Dat zou je kunnen doen:
KeyValuePair
's in het woordenboek door te lopen (wat een aanzienlijke performance hit zal zijn als je een aantal entries in het woordenboek hebt)Gebruik methode 1 als het niet om prestatie gaat, gebruik methode 2 als het niet om geheugen gaat.
Ook moeten alle sleutels uniek zijn, maar de waarden hoeven niet uniek te zijn. U kunt meer dan één sleutel met de opgegeven waarde hebben.
Is er een reden waarom u de sleutel-waarde relatie niet kunt omkeren?
Ik heb een hele simpele manier om dit te doen. Het werkte perfect voor mij.