泛型

  轉自:http://www.hubwiz.com/


  

泛型概述

  泛型(Generic) 是C# 2.0中的新增元素。這種機制允許將類名作爲參數傳遞給泛型類型,並生成相應的對象。將泛型(包括類、接口、方法等)看作模板可能更好理解,模板中的變體部分將被作爲參數傳進來的類名稱所代替,從而得到一個新的類型定義。

  通過泛型可以定義類型安全類,而不會損害類型安全、性能或工作效率。您只須一次性地將服務器實現爲一般服務器,同時可以用任何類型來聲明和使用它。爲此,需要使用 <和 > 括號,以便將一般類型參數括起來。

    List<string> list = new List<string>(); //定義並初始化一個list的範型集合。



  泛型有助於您最大限度地重用代碼、保護類型的安全以及提高性能。

  可以創建泛型集合類,來替代 System.Collections 中的集合類。

  可以創建自己的泛型接口、泛型類、泛型方法等。

  可以對泛型類進行約束以訪問特定數據類型的方法。

  在使用泛型以前,我們要在程序的開頭引入using System.Collections.Generic空間。 而在C#中Generic爲我們提供的泛型類型有List、Directory等。我們會在下面的內容中來講解這些集合的用法.


List

  List類表示可通過索引訪問的對象的強類型列表。提供用於對列表進行搜索、排序和操作的方法。T爲類型參數,代表列表中元素的類型。該類實現了IList泛型接口,是ArrayList類的泛型等效類,其大小可按需動態增加。

List的聲明

  主要利用System.Collections.Generic命名空間下面的List泛型類創建集合,語法如下:

    List<T> ListOfT = new List<T>();

        其中的"T"就是所要使用的類型,既可以是簡單類型,如string、int,也可以是用戶自定義類型。

List的屬性

  List常用的屬性有CountCapacity,其中:

    Count是獲取List中的元素個數;

    Capacity是獲取或設置List中可容納元素的個數。


    List<string> list=new List<string>();

    list.Add("a");      //增加元素

    list.Add("b");

    int count=list.Count; //count值爲2

    list.Capacity=5;      //設置可容納元素個數爲5


List的方法

  List可以靈活的增加、刪除、插入、清除元素,我們可以通過它的 Add、RemoveAt、Insert、Clear等方法來操作。


    List<string> list = new List<string>();    

    list.Add("aa");       //增加元素

    list.Add("bb");  

    list.RemoveAt(0);      //刪除索引是爲0元素

    list.Insert(0, "bb");  //在索引爲0的位置插入元素

    list.Clear();          //清除所有元素



Directory

  在C#中,Dictionary提供快速的基於兼職的元素查找。它的結構是這樣的:Dictionary<[key], [value]> ,當有很多元素的時候可以使用它。它包含在System.Collections.Generic名空間中。在使用前,你必須聲明它的鍵類型和值類型。任何鍵都必須是唯一的,鍵不能爲空引用null,若值爲引用類型,則可以爲空值。

創建及初始化

  以 key 的類型爲 int , value的類型爲string 爲例:

    Dictionary<int,string> myDictionary=new Dictionary<int,string>();

屬性

  Dictionary<[key], [value]> 常用的屬性有CountKeysValues,其中:Count是獲取 Dictionary<[key], [value]> 中的元素個數,Keys表示獲取 Dictionary<[key], [value]> 中的鍵的集合, Values 表示 Dictionary<[key], [value]> 中的所有值的集合。

方法

  C#爲我們提供了一些操作Dictionary<[key], [value]>常用的方法如下表:


    public virtual void Add( [key] key, [value] value ); 
        向字典中添加一元素。


        public virtual void Clear(); 
        移除所有的元素。


        public virtual bool ContainsKey( [key] key ); 
        判斷字典中是否包含指定的鍵。


        public virtual bool ContainsValue( [value] value ); 
        判斷字典中是否包含指定的值。


        public virtual void Remove( [key] key ); 
        移除帶有指定的鍵的元素。


遍歷元素

  Dictionary<[key], [value]>通過KeyValuePair遍歷每一個元素。以 key 的類型爲 int , value的類型爲string 爲例:

    foreach (KeyValuePair<int, string> kvp in dic)

    {

       Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);

    }

元素訪問

  Dictionary<[key], [value]>使用鍵訪問元素。如下代碼:

    Dictionary<int, string> dic = new Dictionary<int, string>();

    dic.Add(1, "1");

    string value=dic[1]; // 獲取key爲1的值

    dic[1]="11";         // 設置key爲1的值


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章