C#泛型集合 using System.Collections.Generic

泛型最常見的用途是泛型集合,命名空間System.Collections.Generic 中包含了一些基於泛型的集合類,使用泛型集合類可以提供更高的類型安全性,還有更高的性能,避免了非泛型集合的重複的裝箱和拆箱。
    很多非泛型集合類都有對應的泛型集合類,下面是常用的非泛型集合類以及對應的泛型集合類:
非泛型集合類 泛型集合類
ArrayList List
HashTable DIctionary
Queue Queue
Stack Stack
SortedList SortedList

爲什麼要用泛型集合?
    在C# 2.0之前,主要可以通過兩種方式實現集合:
    a.使用ArrayList
    直接將對象放入ArrayList,操作直觀,但由於集合中的項是Object類型,因此每次使用都必須進行繁瑣的類型轉換。
    b.使用自定義集合類
    比較常見的做法是從CollectionBase抽象類繼承一個自定義類,通過對IList對象進行封裝實現強類型集合。這種方式要求爲每種集合類型寫一個相應的自定義類,工作量較大。泛型集合的出現較好的解決了上述問題,只需一行代碼便能創建指定類型的集合。
什麼是泛型?
    泛型是C# 2.0中的新增元素(C++中稱爲模板),主要用於解決一系列類似的問題。這種機制允許將類名作爲參數傳遞給泛型類型,並生成相應的對象。將泛型(包括類、接口、方法、委託等)看作模板可能更好理解,模板中的變體部分將被作爲參數傳進來的類名稱所代替,從而得到一個新的類型定義。
怎樣創建泛型集合?
    主要利用System.Collections.Generic命名空間下面的List<T>泛型類創建集合,語法如下:

List<T> ListOfT = new List<T>();
其中的"T"就是所要使用的類型,既可以是簡單類型,如string、int,也可以是用戶自定義類型。下面看一個具體例子。
定義Person類如下:

class Person
{
    private string _name; //姓名
    private int _age; //年齡
    //創建Person對象
    public Person(string Name, int Age)
    {
        this._name= Name;
        this._age = Age;
    }
    //姓名
    public string Name
    {
        get { return _name; }
    }
    //年齡
    public int Age
    {
        get { return _age; }
    }
}
//創建Person對象
Person p1 = new Person("張三", 30);
Person p2 = new Person("李四", 20);
Person p3 = new Person("王五", 50);
//創建類型爲Person的對象集合
List<Person> persons = new List<Person>();
//將Person對象放入集合
persons.Add(p1);
persons.Add(p2);
persons.Add(p3);
//輸出第2個人的姓名
Console.Write(persons[1].Name);
   可以看到,泛型集合大大簡化了集合的實現代碼,通過它,可以輕鬆創建指定類型的集合。非但如此,泛型集合還提供了更加強大的功能,下面看看其中的排序及搜索。
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章