DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ハッシュテーブルのキー名を取得したいです

環境/言語:[C#]
分類:[.NET]

お世話になります。

C#のHashtableを使ってキーから値を取得していたのですが、
逆に値からキーを取得することはできないのでしょうか。

調べたところ、ハッシュテーブルに値が存在するかはContainsValueで
判定できるのですが、キーを直接取得することはできないようです。

解決方法をご存じの方いらっしゃいましたら教えていただきたいです。

よろしくお願いします。
■No30741に返信(BOBさんの記事)

キーと値は1:1とは限らないので値から取得するキーは2つになる可能性があります。それを踏まえた上で今のHashTableの値をキー、キーを値とする逆の情報も持つようにすればよいかと思います。
逆方向の Hastable を作るほかは、Hashtable を foreach で回して DictionaryEntry の Value を比較し、一致したときの Key を見るというところですかね。
逆方向の Hashtable を作るよりは効率が落ちます。

DOBON.NET | プログラミング道 | プログラミング掲示板