文章类型: .NET
关键词: C#,泛型,集合
内容摘要:

C#的泛型与泛型集合

2015/7/29 10:11:26    来源:apple    阅读:

泛型:通过泛型可以定义类型安全的数据类型,它的最显著应用就是创建集合类,可以约束集合类内的元素类型。

比较典型的泛型集合是List<T>Dictionary<k,v>

一、泛型集合List<T>:

示例:

private void btnMyClassTest_Click(object sender, EventArgs e)

{

     List<Student> students = new List<Student>();

 

     Student scofield = new Student("Scofield", Genders.Male, 28, "越狱狱");

     Student zhang = new Student("张靓靓", Genders.Female, 20, "唱歌歌");

     Student jay = new Student("周杰杰", Genders.Male, 21, "耍双节棍棍");

     Teacher jacky = new Teacher("成龙龙", 4);

 

      #region 添加元素 演示

 

     students.Add(scofield);

     students.Add(zhang);

     students.Add(jay);

 

     //打印集合数目

     MessageBox.Show(string.Format("共包括 {0} 个成员。",

         students.Count.ToString()));

 

     #endregion

 

      #region 存取单个元素 演示

 

     Student stu1 = students[2];

     stu1.SayHi();

 

     #endregion

 

      #region 元素遍历 演示

 

     foreach (Student stu in students)

     {

         Console.WriteLine(stu.Name);

     }

 

     #endregion

 

      #region 删除元素 演示

 

     //打印集合数目

     MessageBox.Show(string.Format("共包括 {0} 个成员。",students.Count.ToString()));

     students.RemoveAt(0);

}

二、泛型集合Dictionary<K,V>:编译时检查类型约束,获取元素时无须类型转换,通过Key/Value/值对保存元素的。

                                          <K,V>中的K表示集合中Key的类型,V表示Value的类型。

示例:

private void btnMyClassTest_Click(object sender, EventArgs e)

{

    Dictionary<String, Student> students = new Dictionary<string, Student>();

 

    Student scofield = new Student("Scofield", Genders.Male, 28, "越狱狱");

    Student zhang = new Student("张靓靓", Genders.Female, 20, "唱歌歌");

    Student jay = new Student("周杰杰", Genders.Male, 21, "耍双节棍棍");

 

    #region 添加元素 演示

 

    students.Add(scofield.Name, scofield);

    students.Add(zhang.Name, zhang);

    students.Add(jay.Name, jay);

 

    //打印集合数目

    MessageBox.Show(string.Format("共包括 {0} 个学员。",

     students.Count.ToString()));

 

    #endregion

 

    #region 存取单个元素 演示

 

    Student stu2 = students["周杰杰"];

    stu2.SayHi();

 

    #endregion

 

    #region 元素遍历 演示

 

    foreach (Student student in students.Values)

    {

        Console.WriteLine(student.Name);

    }

 

    #endregion

 

    #region 删除元素 演示

 

    //打印集合数目

    MessageBox.Show(string.Format("共包括 {0} 个学员。",students.Count.ToString()));

    students.Remove("周杰杰");

 

    //打印集合数目

    MessageBox.Show(string.Format("共包括 {0} 个学员。",students.Count.ToString()));

    #endregion

}

注意:引入命名空间System.Collections.Generic;

         泛型接口也比较重要

小结:数据批量处理方式 :

                                  A、数组容量相对固定(指最大最小不超过两倍),用下标来取元素,

                                       不要求其他更有意义的下标来取数据。

                                  BList<T>容量可变,可排序。

                                  CDictionary<K,V>允许有意义的数据类型作下标。

 

泛型集合

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

优点:

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

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

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

使用:

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

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

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

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

 

System.Collections.Generic命名空间

 

泛型集合类                  描述

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

Dictionary     存储键值对的集合泛型类

SortedList     类似于Dictionary,但按键自动排序

LinkedList               双向链表

Queue                    先进先出的队列类

Stack                    后进先出的堆栈类

 


↑ 上一篇文章:C#中的值类型和引用类型 关键词:C#,值类型,引用类型 发布日期:2015/7/29 10:10:16
↓ 下一篇文章:C#中的装箱和拆箱操作 关键词:C#,装箱,拆箱,操作 发布日期:2015/7/29 10:12:34
相关文章:
面向对象C# OOP编程复习 关键词:泛型集合,构造函数,子类构造函数,函数重载,多态,父类类型作为参数,设计模式,XML文件解析,动.. 发布日期:2015-07-25 17:40
C#中ArrayList与Hashtable集合复习总结训练 关键词:C#,ArrayList,Hashtable,集合,总结,训练 发布日期:2015-07-29 10:17
C#中的DataGridView使用“属性.属性”绑定数据 关键词:C#,DataGridView,使用,属性.属性,绑定数据 发布日期:2015-07-18 12:09
相关目录:.NET软件开发ANDROID
我要评论
正在加载评论信息......