泛型集合

来源:互联网 发布:淘宝视频拍摄技巧 编辑:程序博客网 时间:2024/06/04 20:05

①、C#中使用泛型的优点和使用

优点:

a.类型安全:使用泛型集合编译器会在编译期间检查要放入集合对象的数据类型,如果发现不是某种特定的类型就会报错,这样就可以避免发生许多运行时错误,即类型安全。

b.提高性能:由于明确了数据类型,所以在存取数据不会发生类型的转换,特别是存取值类型是不会发生装箱和拆箱操作。

c.使用泛型类型可以最大限度地重用代码

使用:

a.泛型最常见的用途是创建集合类。

b.可以对泛型类进行约束以访问特定数据类型的方法。

c.可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托

d.关于泛型数据类型中使用的类型的信息可在运行时通过反射获取。

 

②、System.Collections.Generic命名空间

 

泛型集合类                  描述

List<T>                     一般用于替代ArrayList类,与ArrayList很相似

Dictionary<TKey,TValue>     存储键值对的集合泛型类

SortedList<TKey,TValue>     类似于Dictionary<TKey,TValue>,但按键自动排序

LinkedList<T>               双向链表

Queue<T>                    先进先出的队列类

Stack<T>                    后进先出的堆栈类

 

C#中没有ArrayList<T>Hashtable<Tkey,TValue>这两个泛型集合类。

 

凡是有对应泛型类型的类就尽量不要使用早期提供的非泛型类型的类。下面的泛型类型对应于低版本提供的类型:

       泛型类                   低版本提供的非泛型类

       List<>                        ArrayList

       Dictionary<>                  Hashtable

       Queue<>                       Queue

       Stack<>                       Stack

       SortedList<>                  SortedList

 

③、创建泛型集合类的新实例

 

泛型集合类<数据类型> 实例名=new 泛型集合类<数据类型>();

 

List<int> lstStr=new List<int>();

List<Employee> lstStu=new List<Employee>();

还是借用前面的Employee的代码,把main修改为

static void Main(string[] args)

       {

          SortedList<int,Employee> sl = new SortedList<int,Employee>(); //存储员工信息

           sl.Add(1, new Employee(1, "小雨", 3000));

           sl.Add(4, new Employee(4, "小华", 2000));

           sl.Add(3, new Employee(3, "小刚", 1500));

           sl.Add(2, new Employee(2, "小芳", 3500));

           //ht的键对象全部复制到ArrayList

           List<int> list = new List<int>(sl.Keys); //存储员工号信息

         //list.AddRange(sl.Keys);

           list.Sort();

           //排序完成输出

           for (int i = 0; i < list.Count; i++)

           {

               int e = list[i];

               Employee temp = (Employee)sl[e];

               Console.WriteLine(temp);

           }

}

 

原创粉丝点击