说泛型之前先简单了解下C#中的数组和ArrayList数组缺点是申明限制了长度,不能自动增加长度,ArrayList虽然能自动增加长度,但是由于ArrayList可以允许元素类型不同,导致类型安全性不高,类型不同,迭代的时候会出现错误,那时,只能用object迭代了,而泛型弥补了以上缺点。
1 泛型特点:
1 自动增长,类似于C++里的vector
2 类型安全性高,只允许一种数据类型
3 性能高,迭代时不需要数据转换
2 泛型与ArrayList对比代码:
//ArrayList 集合 命名空间 using System.Collections; ArrayList aList = new ArrayList() { 11,"aa",33m };// 允许不同类型 aList.Add("bb");// 也可以aList.Add(new MyClass()) MyClass是自定义的类; //读取数据,不同数据类型的集合,获取元素时,要进行数据转换 for (int i = 0; i < aList.Count;++i ) { Console.WriteLine("{0}", aList[i].ToString()); } foreach(object obj in aList) //不能对某一特定类型迭代 { Console.WriteLine("{0}", obj.ToString());//读取 } // 泛型类型 List<T> list ; T为任何数据类型 List<int> lList = new List<int>() { 1,2,3,4};//初始化,单一数据类型 lList.Add(55);//添加数据 // 读取数据,相同类型,无需转换 for (int i = 0; i < lList.Count;++i ) { Console.WriteLine(lList[i]);// 也可用foreach }