问题描述
解决方案
新建的dic确实是空的,但是你做第一次比较的时候执行的是else dic[str[i]]=1;这个地方就赋了键值value+1,相同字母比较的第二次 比较的时候已经有这个键值value++。可以理解为新建一张白纸,做比较的时候就写上去key、value。
解决方案二:
C#中Dictionary的用法
C# Dictionary
C# Dictionary用法总结
解决方案三:
好像你的代码有点问题,
Dictionary dic = new Dictionary();
string str = "Welcome to ChinaWorld";
for (int i = 0; i < str.Length;i++ )
{
if ( char.IsWhiteSpace(str,i))
continue;
if (dic.ContainsKey(str[i]))
dic[str[i]]++;
else
dic[str[i]]=1;
}
foreach (KeyValuePair kv in dic)
Console.WriteLine("字母{0}出现{1}次",kv.Key,kv.Value);
Console.ReadKey();
估计的空格也当做一个字母输出了,你可以查看一下修改一下。
解决方案四:
string类型数据可以看做是char类型数据的数组,不知道你有没有听说过这句话?