C# 谈泛型集合

来源:互联网 发布:mac dock图标不显示 编辑:程序博客网 时间:2024/06/08 12:32

说泛型之前先简单了解下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            }






  
0 0