汎用辞書から指定した値を持つ複数のキーを取得する方法
.NET 汎用辞書は、次のコードに示すように、キーに関連付けられた値を取得する効率的な方法を提供します。
<code class="language-csharp">Dictionary<int, string> greek = new Dictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); string secondGreek = greek[2]; // Beta</code>
この問題を解決するために、次のコードはキーと値を一般的な方法で取得できる双方向辞書を実装します。
<code class="language-csharp">using System; using System.Collections.Generic; using System.Text; class BiDictionary<TFirst, TSecond> { IDictionary<TFirst, IList<TSecond>> firstToSecond = new Dictionary<TFirst, IList<TSecond>>(); IDictionary<TSecond, IList<TFirst>> secondToFirst = new Dictionary<TSecond, IList<TFirst>>(); // ... (方法和属性的实现) ... }</code>
たとえば、各ギリシャ文字に数値が割り当てられているギリシャ語単語の辞書を考えてみましょう。双方向辞書を使用すると、次のように、指定された数値に対応するギリシャ文字を簡単に取得できます。
このメソッドは、指定された値に対応するキーのリストを返すことにより、重複した値をエレガントに処理します。これは、複数のキーが同じ値にマップされる可能性のある辞書を扱う場合の双方向辞書の多用途性を示しています。
<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); greek.Add(5, "Beta"); // 检索对应于值“Beta”的希腊字母 IList<int> betaKeys = greek.GetBySecond("Beta"); // 显示结果 Console.WriteLine("Keys for \"Beta\":"); foreach (int key in betaKeys) { Console.WriteLine(key); }</code>
以上が辞書内の同じ値に関連付けられた複数のキーを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。