C# での値に基づく辞書キーの取得
C# では、辞書はキーと値のペアであり、各一意のキーは 1 つの値に対応します。ただし、値からのキーの取得は直接サポートされていません。この記事では、この課題に対処するための効率的なソリューションを提供します。
ルックアップの使用
辞書内の値は一意ではない可能性があるため、ルックアップを実行して、対応するキー。これは、次のように Queryable クラスの FirstOrDefault メソッドを使用して実現できます:
var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
この行は、ラムダ式を使用して辞書を反復処理し、関連付けられた値が「one」と一致する最初のキーを返します。
逆引き辞書の使用
辞書内の値が保証されている場合固有であり、読み取りよりも挿入の頻度が低いため、値がキーになる別のディクショナリを作成したり、その逆を行うことができます。この逆辞書はキーの取得を高速化できます。
Dictionary<string, string> inverseTypes = new Dictionary<string, string>(); foreach (var item in types) { inverseTypes[item.Value] = item.Key; } string myKey = inverseTypes["one"];
このアプローチでは、値によるキーの直接検索が可能ですが、元の辞書と逆辞書の両方を維持する必要があります。
HashTable または SortedLists
ハッシュ テーブルとソートされたリストはキーにはあまり適していません辞書としての値による検索。通常、これらは特定の値に基づいてキーを検索する効率的な方法を提供しません。辞書は、キーと値のペアを効率的に処理できるように特別に設計されています。
以上がC# の値に基づいて辞書キーを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。