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;
    }

请问可以帮忙吗??多谢

4

3 回答 3

3

直接请求就好了:

return dic[term]

这应该够了吧!

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

int i;
if (dic.TryGetValue(term), out i)
    return i;
else
    return 0;
于 2012-11-21T12:55:29.843 回答
1

字典不打算以线性方式使用,也不会通过数字索引到它们。每个键都是一个唯一的哈希值,计算时会给出要返回的内部位置。是的,可以像您一样枚举字典,但这不是字典的用途。

于 2012-11-21T12:57:03.627 回答
1

Dictionary已经为此定义了一些东西。如果您希望它在找不到键的情况下引发异常,请使用indexer 属性,例如dic[term]. 如果您不希望它抛出,而是bool说是否找到它,请使用TryGetValue方法,例如

int result;
if (dic.TryGetValue(term, out result))
    // do something
于 2012-11-21T12:59:11.117 回答