ホームページ > バックエンド開発 > C++ > .NET ディクショナリ内の単一の値に関連付けられた複数のキーを効率的に取得するにはどうすればよいですか?

.NET ディクショナリ内の単一の値に関連付けられた複数のキーを効率的に取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-21 03:31:13
オリジナル
772 人が閲覧しました

How Can I Efficiently Retrieve Multiple Keys Associated with a Single Value in a .NET Dictionary?

.NET 汎用ディクショナリ: 単一の値に対する複数のキーの処理

標準 .NET Dictionary オブジェクトは、キーから値への簡単なアクセスを提供します。 ただし、複数のキーが同じ値にマップされる場合、特定の値に関連付けられたキーの取得は複雑になります。この記事では、カスタム双方向辞書を使用したソリューションを紹介します。

双方向辞書の構築

この制限を克服するために、BiDictionary<TFirst, TSecond> クラスを作成します。 このクラスは、2 つの内部辞書 firstToSecond (キーから値) と secondToFirst (値からキー) を使用して、両方向のキーと値の関係を管理します。

エントリの追加とデータへのアクセス

Add メソッドは、新しいキーと値のペアの追加を効率的に処理します。既存のエントリをチェックし、必要に応じて新しいリストを作成して、単一の値に対して複数のキーを保存します。

BiDictionary クラスは、キーから値へのアクセスと値からキーへのアクセスの両方のためのインデクサーを提供します。 曖昧さを避けるために、専用のメソッド GetByFirstGetBySecond も含まれています。

具体例

実際的な例を考えてみましょう:

<code class="language-C#">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

ShowEntries(greek, "Alpha"); // Output: Alpha: [1]
ShowEntries(greek, "Beta"); // Output: Beta: [2, 5]
ShowEntries(greek, "Gamma"); // Output: Gamma: []</code>
ログイン後にコピー

ShowEntries メソッドは、指定された値のキーを取得する方法を示します。 「Beta」が両方の関連付けられたキー (2 と 5) を正しく返すことに注目してください。 これは、値ごとに複数のキーを処理できる双方向辞書の機能を示しています。

以上が.NET ディクショナリ内の単一の値に関連付けられた複数のキーを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート