C# で辞書のキーを値で取得するにはどうすればよいですか?
Dictionary<string, string> types = new Dictionary<string, string>()
{
{"1", "one"},
{"2", "two"},
{"3", "three"}
};
次のようなものがほしいです:
getByValueKey(string value);
getByValueKey("one")
返却する必要があります"1"
。
これを行う最善の方法は何でしょうか? HashTable または SortedLists でしょうか?
ベストアンサー1
値は必ずしも一意である必要はないので、検索を行う必要があります。次のようにすることができます。
var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
値が一意であり、読み取りよりも挿入される頻度が低い場合は、値がキーでキーが値である逆辞書を作成します。