当密钥存在时,返回字典元素的值

时间:2012-11-21 12:54:09

标签: c# c#-4.0

如何返回

的值
dictionary <string, int > 
第一次找到密钥时的

元素???。

我正在尝试以下代码,但我确定我做错了什么。因为它需要很长时间才能返回值。

        private int GetIndex(string term)
    {
        int index = 0;
        foreach (var entry in dic)
        {

            var word = entry.Key;
            var wordFreq = entry.Value;

            if (word == term)

                index = wordFreq;

        }
        return index;
    }

请帮忙吗?非常感谢

3 个答案:

答案 0 :(得分:3)

直接请求:

return dic[term]

这应该可以做到!

但如果你想在它不存在时返回0,那就这样:

int i;
if (dic.TryGetValue(term), out i)
    return i;
else
    return 0;

答案 1 :(得分:1)

Dicitionaries并不意味着以线性方式使用,并且不通过数字索引它们。每个键都是一个唯一的哈希值,在计算时会给出要返回的内部位置。是的,你可以按字典列举字典,但这不是字典的用法。

答案 2 :(得分:1)

Dictionary已为此定义了一些内容。如果您希望在找不到密钥时抛出异常,请使用indexer property,例如dic[term]。如果你不想扔它,而是得到bool说是否找到它,请使用TryGetValue method,例如

int result;
if (dic.TryGetValue(term, out result))
    // do something