我有关键和值的哈希表,在我的代码中,我通过下面的值迭代哈希表:
foreach (Object clientObject in ClientList.Values)
{
// code to perform operation based on value
......
}
ClientList是哈希表。 现在我想在我的代码中从哈希表中获取关键值。有没有办法实现这个目标?
谢谢
答案 0 :(得分:5)
你必须以这种方式遍历表:
Hashtable clientList = new Hashtable();
foreach (DictionaryEntry dictionaryEntry in clientList)
{
// work with value.
Debug.Print(dictionaryEntry.Value.ToString());
// work with key.
Debug.Print(dictionaryEntry.Key.ToString());
}
答案 1 :(得分:3)
如果您想要具有特定值的keys
列表,请使用LINQ(.NET> = 3.5)
object searchedValue = something;
IEnumerable<object> keys = ClientList.Cast<DictionaryEntry>().Where(p => ClientList.Values == searchedValue).Select(p => p.Key);
这可能不是你想要的,但它是你要求的。
(代码表示:获取ClientList
的所有元素(每个元素是键和值的“元组”)并搜索具有与搜索值相等的值的元素。这些元素的关键。
答案 2 :(得分:1)
使用该值无法获取密钥。
其中一个原因是密钥是唯一的,而值在HashTable中并不是唯一的。
您可以使用@Fischermaen方式读取值。