ホームページ >バックエンド開発 >C++ >C# の値に基づいて辞書キーを効率的に取得するにはどうすればよいですか?

C# の値に基づいて辞書キーを効率的に取得するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-30 21:19:23165ブラウズ

How Can I Efficiently Retrieve Dictionary Keys Based on Values in C#?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。