如何从哈希表中的值获取键

时间:2011-10-20 06:55:17

标签: c#

我有关键和值的哈希表,在我的代码中,我通过下面的值迭代哈希表:

foreach (Object clientObject in ClientList.Values)
{
    // code to perform operation based on value
    ......
}

ClientList是哈希表。 现在我想在我的代码中从哈希表中获取关键值。有没有办法实现这个目标?

谢谢

3 个答案:

答案 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方式读取值。