日期:2014-05-19  浏览次数:20820 次

hashtable可不可以由值获取键?可以的话如何获取。
如题,hashtable可不可以由值获取键?可以的话如何获取。

------解决方案--------------------
一般是没有必要这样做的,你可以用 IDictionaryEnumerator dict = yourHashtable.GetEnumerator;
While(dict.MoveNext()) {
dict.Value // 这就是你要的值,一定要这么做的话你就判断好了。
}

一般我的做法是通过它的Key去取值的:myHashtable[ "key "]
------解决方案--------------------
我想也只能循环判断Value是不是你要的值,是的话把对应的Key存在一个连表中
------解决方案--------------------
想想,

hashtable[key1]=1
hashtable[key2]=1

那么, 你想从value=1中返回来key1给你还是key2给你?

所以, 你的想法不现实
------解决方案--------------------
HaashMap是由Key计算出一个内存区段的唯一地址,在这个地址上保存了Value。 所以这也是HashMap访问速度快的原因。

由此我们可以知道,通过Value找Key是没办法的了。
------解决方案--------------------
HashTable一般用的是HashCode
你可以用你对象直接通过 obj.GetHashCode()获得