今天老师给总结了一遍常用的两个集合List与Dictionary并带着写了一些小工具程序,这两个例子感觉非常实用!笔记如下:
1 常用集合: 2 1.可变长数组:ArrayList(非泛型)->List(泛型) 3 属性:Capacity容量 4 Count实际存储的数量 5 方法:Add(object obj)增加元素,什么都可以放进去。 6 AddRange(ICollection c)可以直接加进一个数组或集合。 7 Remove()和RemoveAt(下标)删除元素。 8 Clear()清除所有元素。 9 TrimToSize()把容量设置成实际元素的数量,最小是4个。 10 Contains()返回是否包含某元素的布尔值。 11 ToArray()把集合转换成Object数组类型。 12 Sort()对值类型升序排序。 13 Reverse()反转。 14 ※在参数里写接口类型,实际传进去的是一个实现了这个接口的某类型的对象,所以参数传一个接口类型,就相当于这个函数可以使用所有实现了这个接口的类的对象。 15 16 2.键值对的集合:Hashtable(非泛型)->Dictionary (泛型) 17 特点:键的名字不能重复,里面存的数据里的类型是DictionaryEntry类型,可以点出键和值,Dictionary里用KeyValuePair。不能for遍历,只能foreach遍历。 18 方法:Add(键,对象本身) 如:hash.Add(p.Name, p); 19 修改元素的值:hash[“张三”]=new person() { Name=”王五”, Email = “xxx”}; 20 ContainsKey()返回是否包含某元素的布尔值。 21 Remove(“key”)根据键来删除一个元素。 22 23 ArrayList(非泛型)->List (泛型) 24 Hashtable(非泛型)->Dictionary (泛型)
案例1:根据字典进行字符串的替换操作
1 string str = "Welcome to Chinaworld"; 2 str = str.ToLower(); 3 4 Dictionarydict = new Dictionary (); 5 6 foreach (char item in str) 7 { 8 if (char.IsLetter(item)) 9 { 10 if (dict.ContainsKey(item)) 11 { 12 dict[item] += 1; 13 } 14 else 15 { 16 dict.Add(item, 1); 17 } 18 } 19 } 20 21 foreach (KeyValuePair kv in dict) 22 { 23 Console.WriteLine("{0}出现了{1}次",kv.Key, kv.Value); 24 } 25 26 Console.ReadKey();
案例2:判断某字母出现了几次
1 //根据字典替换 2 Dictionarydict = new Dictionary (); 3 string str = "1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖 0零"; 4 5 string[] names = str.Split(''); 6 foreach (string item in names) 7 { 8 dict.Add(item[0], item[1]); 9 } 10 11 string num = "0123456789"; 12 char[] chs = num.ToCharArray(); 13 14 for (int i = 0; i < chs.Length; i++) 15 { 16 if (dict.ContainsKey(chs[i])) 17 { 18 //键从字典中找对应的值19 chs[i] = dict[chs[i]]; 20 } 21 } 22 23 Console.WriteLine(new string(chs)); 24 Console.ReadKey();