Altro
ottenere la chiave del dizionario per valore
Come ottengo la chiave di un dizionario per valore in C#?
Dictionary<string, string> types = new Dictionary<string, string>()
{
{"1", "one"},
{"2", "two"},
{"3", "three"}
};
Voglio qualcosa come questo:
getByValueKey(string value);
getByValueKey("one")
deve restituire "1"
.
Qual è il modo migliore per farlo? Forse HashTable, SortedLists?
334
3
I valori non devono necessariamente essere unici, quindi dovete fare una ricerca. Potete fare qualcosa del genere:
Se i valori sono unici e vengono inseriti meno frequentemente che letti, allora create un dizionario inverso dove i valori sono le chiavi e le chiavi sono i valori.
Potresti farlo:
KeyValuePair
's nel dizionario (che sarà un notevole calo di prestazioni se avete un certo numero di voci nel dizionario)Usate il metodo 1 se le prestazioni non sono una considerazione, usate il metodo 2 se la memoria non è una considerazione.
Inoltre, tutte le chiavi devono essere uniche, ma i valori non devono essere unici. Potete avere più di una chiave con il valore specificato.
C'è qualche motivo per cui non si può invertire la relazione chiave-valore?
Ho un modo molto semplice per farlo. Ha funzionato perfettamente per me.