1. ホーム
  2. c#

[解決済み] 辞書のキーを値で取得する

2022-03-23 05:43:36

質問

C#で辞書のキーを値で取得するにはどうすればいいですか?

Dictionary<string, string> types = new Dictionary<string, string>()
{
    {"1", "one"},
    {"2", "two"},
    {"3", "three"}
};

こんなのが欲しい。

getByValueKey(string value);

getByValueKey("one") は必ず返す "1" .

これを行うには、どのような方法があるでしょうか?HashTableとかSortedListsとか?

どのように解決するのですか?

値は必ずしも一意である必要はないので、ルックアップを行う必要があります。次のような方法があります。

var myKey = types.FirstOrDefault(x => x.Value == "one").Key;

値が一意であり、挿入される頻度が読み込みより低い場合は、値がキー、キーが値となる逆辞書を作成する。