这个例子中,Dictionary集合没有添加str,为什么下面能作比较,然后输出呢?新手求大神指导。
新建的dic确实是空的,但是你做第一次比较的时候执行的是else dic[str[i]]=1;这个地方就赋了键值value+1,相同字母比较的第二次 比较的时候已经有这个键值value++。可以理解为新建一张白纸,做比较的时候就写上去key、value。
好像你的代码有点问题,
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类型数据的数组,不知道你有没有听说过这句话?