C# 集合
参考资料: https://www.cnblogs.com/kissdodog/archive/2013/01/29/2882195.html
https://www.cnblogs.com/maj99/p/6322626.html
IEnumerable:所有集合都要继承IEnumerable。IEnumerable接口只要一个方法GetEnumerator 。返回值是IEnumerator类型,继承它可以就可以使用枚举器foreach
IEnumerator : 支持在集合上进行简单的迭代
ICollection:定义集合的大小(count)、枚举器(foreach)、同步方法(copyto)继承
ICloneable: 只有一个Clone()方法
ArrayList : 类似数组的集合,容量是固定的,默认初始容量为0,可使用add添加,不对其子集进行约束,可以添加任意类型数据。继承于:IEnumerable, IList, ICollection, ICloneable
1 ArrayList arraylist = new ArrayList(); 2 int num = arraylist.Count;//0 3 arraylist.Add(new Cl()); 4 arraylist.Add("ddd"); 5 arraylist.Add(55555); 6 7 num = arraylist.Count;//3 8 9 arraylist = new ArrayList(5); 10 num = arraylist.Count;//0
HashTable:提供HashTable的集合类型(别称哈希表或者字典)。以键值对存储数据。键值都是object类型
属性:keys、values、count
方法:Add(object key,object value)、Remove()、clear()
与ArrayList的区别:HashTable可以使用键来查找对象
List<T>:泛型集合。类型参数T。通过类型参数T约束参数。可以最大限度重用并保证类型安全(减少了强制装箱的风险)、提高性能
与ArrayList的区别:增加了类型约束(ArrayList可以添加任意类型),添加时不需要进行装箱拆箱
Dictionary<K,V>:泛型字典。跟HashTable类型,就是增加的类型约束(HashTable是可以添加任意类型)Dictionary<K,V>添加、读取值类型元素无需拆箱、装箱,而HashTable需要做拆箱、装箱处理。
定义语法:Dictionary<K,V>对象名 = new Dictionary<K,V>