C#之集合概述

原文鏈接:http://www.cnblogs.com/wangzheand/p/5182996.html

------------------------------------------------

集合概述

集合簡單的說就是數組的升級版。他可以動態的對集合的長度(也就是集合內最大元素的個數)進行定義和維護!

ArrayList

ArrayList非常類似於數組。也有人稱他爲數組列表,它的容量可以根據需要進行動態擴充,而它的索引也會根據集合容量的擴展而重新分配和調整。也就是說ArrayList集合中的元素的下標是不確定的、可變的。

ArrayList類屬於System.Collections命名空間,這個命名空間包含接口和類,這些接口和類定義各種對象(如列表、隊列、位數組、哈希表和字典)的集合。

語法:

Using System.Collections;//導入命名空間
//定義ArrayList對象
ArrayList    ArrayList集合名稱=new  ArrayList(【長度】);

ArrayList的常用方法和屬性

               屬性名稱                說明
              Count 獲取ArrayList中實際包含的元素數
      返回值類型         方法名稱         說明
           int   add(Object Value) 將對象添加到ArrayList的結尾處
           Void   RemoveAt(int  index) 移除ArrayList指定索引處的元素
           Void   Remove(Object  Value) 從ArrayList中移除特定的對象
           Void   Clear() 從ArrayList中移除所有的元素

HashTable

在ArrayList中我們可以通過索引訪問集合中的元素,但是當集合內的元素索引頻繁變化時要找出每個元素的位置(索引)就變得非常麻煩你了,

C#提供了一種叫HashTable的數據結構,通常稱他爲哈希表也有人稱他爲“字典”,給它起字典這個名字是因爲它和字典非常類似,都是通過一個單詞查找出有關此單詞的更多信息,HashTable是通過鍵(Key)對值(Value)來組織數據的

HashTable的常用屬性和方法

                屬性                       說明
count 獲取包含在HashTable中鍵值對的數目
Keys 獲取包含HasTable中鍵的集合
Values 獲取包含HasTable中值得集合

  返回值類型 方法名稱                             說明
void Add(Object Key,Object Value) 將帶有指定鍵和值得元素添加到HashTable中
Void Remove(Object  Key) 從HashTable中移除帶有特定鍵的元素
Void Clear() 清除HashTable中的所有元素
泛型和泛型集合

泛型和泛型集合

通過ArrayList和HashTable存儲的數據都會轉換成Object類型,這就意味着它可以在一個集合中存儲不同的類型元素,在遍歷集合時就有可能引發強制類型轉換錯誤的問題。而泛型集合是類型安全的,在定義時就先定了集合中的元素類型,下面將詳細講解泛型和泛型集合。

泛型

泛型是C#2.0 中的一個新特性,泛型引入了一個概念:類型參數,通過使用類型參數(T)減少了運行時強制類型轉換或裝箱拆箱操作的風險,同過泛型可以最大限度的重用代碼,保護類型安全及提高性能,它的最常見應用是創建集合類,可以約束集合類中的元素類型。個比較典型的泛型集合是LIst<T>和Dictionary<K,V>,下面進行詳細講解、

泛型集合

在System.Collections.Generic命名空間中定義了去多泛型集合類這些類可以代替上面的ArrayList

定義一個List<T>集合的語法如下:

List <T>  集合名稱=new   List<T>();

“<T>”中的T可以對集合中的元素類型進行約束,T表名集合管理的元素類型。

List<T>和ArrayList的區別

  1. List<T>對保存的元素類型做約束,ArrayList可以保存任何類型的元素
  2. list<T>保存值類型元素不會進行裝箱拆箱操作而ArrayList會

泛型集合Dictionary<K,V>

泛型集合Dictionary可以代替上面的HashTable

定義一個泛型集合Dictionary<K,V>的語法

Dictionary<K,V>  集合名稱=new   Dictionary<K,V>();

在”<K,V>”中K表示集合中Key的類型,V表示Value的類型,他們的含義和List<K,V>是相同的

    1. Dictionary<K,V>對保存的元素類型做約束,HashTablet可以保存任何類型的元素
    2. Dictionary<K,V>保存值類型元素不會進行裝箱拆箱操作而HashTablet會

泛型類

在集合中使用泛型只是泛型多種應用的一種,在類、方法等方面已有泛型的應用

定義一個泛型類的語法如下:

public class     類名<T>
{
    //....
}

T指類型參數,代表具體的數據類型,可以是值類型也可以是引用類

發佈了47 篇原創文章 · 獲贊 124 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章