对于以上四种
其实就分两种
1 . List泛型
2. Dictionary键值集合
Dictionary 存储模式相当于字典一样 。查找的速度相当之快
当我要查找一个键对应的值时,他会根据键的内存地址来直接查找,而不是遍历所有数据;
也推荐 我们使用这两种,相当于是前面的生级版。好用
#region 练习:计算字符串中每种字符出现的次数(面试题)。 “Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……提示:Dictionary<char,int>,char的很多静态方法。char.IsLetter()
string dimsg = "Welcome to Chinaworld";
// dimsg = dimsg.Replace(" ", "").Trim();
Dictionary<char, int> di1 = new Dictionary<char, int>();
foreach (char item in dimsg)
{
if (char.IsLetter(item))
{
bool diflag = true;
KeyValuePair<char, int> it = new KeyValuePair<char, int>();
foreach (var item1 in di1)
{
if (item1.Key.ToString().ToLower() == item.ToString().ToLower())
{
it = new KeyValuePair<char, int>(item1.Key, item1.Value + 1);
diflag = false;
break;
}
}
if (diflag)
{
di1.Add(item, 1);
}
else
{
di1[it.Key] = di1[it.Key] + 1;
}
}
}
foreach (var item in di1)
{
Console.WriteLine(item.Key+"|"+item.Value);
}
//先把QQ和网址存到qqhtml中,以下是我手写做测试的
List<List<string>> qqhtml = new List<List<string>>();
//查找网址和对应QQ
List<string> qqhtmlli = new List<string>();
qqhtmlli.Add("61794481");
qqhtmlli.Add("wwwww.fds.fds");
qqhtml.Add(qqhtmlli);
List<string> qqhtmlli1 = new List<string>();
qqhtmlli1.Add("61794481");
qqhtmlli1.Add("wwfdswww.fds.f11ds");
qqhtml.Add(qqhtmlli1);
List<string> qqhtmlli2 = new List<string>();
qqhtmlli2.Add("61794481");
qqhtmlli2.Add("ww.fddsasds.fds");
qqhtml.Add(qqhtmlli2);
List<string> qqhtmlli3 = new List<string>();
qqhtmlli3.Add("61794480");
qqhtmlli3.Add("ww.fdsadsads.fds");
qqhtml.Add(qqhtmlli3);
List<string> qqhtmlli4 = new List<string>();
qqhtmlli4.Add("61794480");
qqhtmlli4.Add("ww.fdeqweass.fds");
qqhtml.Add(qqhtmlli4);
List<string> qqhtmlli5 = new List<string>();
qqhtmlli5.Add("61794482");
qqhtmlli5.Add("ww.fdqwes.fds");
qqhtml.Add(qqhtmlli5);
//这个时候把相同的QQ对应的网址存起来。一个QQ对应的是一个网址数组
Dictionary<string, ArrayList> di0 = new Dictionary<string, ArrayList>();
foreach (var item in qqhtml)
{
if (di0.ContainsKey(item[0]))
{
ArrayList lis = di0[item[0]];
lis.Add (item[1]);
di0[item[0]] = lis;
}
else
{
ArrayList lis = new ArrayList();
lis.Add(item[1]);
di0.Add(item[0], lis);
}
}
//然后读取
foreach (var item in di0)
{
Console.WriteLine();
Console.WriteLine(item.Key);//这里是QQ
Console.WriteLine("---------------以下是网址");
foreach (var ite in item.Value)//这里QQ对应的网址数组
{
Console.WriteLine(ite.ToString());
}
}