如何返回
的值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;
}
请帮忙吗?非常感谢
答案 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