我想计算文本文件中重复字符的数量。
我写了这段代码
foreach(char c in File.ReadAllText(path))
{
if(dic.ContainsKey(c))
{
int i=dic[c];
dic[c]=i++;
}
else
{
dic.Add(c,1);
}
}
它添加了所有唯一的单词,但是即使有重复的字符,也将所有键的值显示为
1
!
最佳答案
我想你要:
dic[c] = i + 1;
或许也可以,尽管恕我直言,这只会增加复杂性,因为您在之后不使用
i
:dic[c] = ++i;
说明:
i++
是后递增操作。这意味着它将i
的当前值分配给dic[c]
,然后递增i
。因此,总而言之,您始终在阅读i=1
,将i=1
重新放入字典中,然后将i
递增到2
,然后再将其发送到void。附录:
您实际上根本不需要遍历一个临时变量。您可以简单地通过
dic[c] += 1;
读取并分配该值,甚至可以通过dic[c]++;
递增该值。
关于c# - 无法更改字典键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19640728/