C#中各種集合

  • using System

 Array(數組)

  1. C#中所有數組的基類。
  2. 數組在內存中是連續存儲的,所以它的索引速度非常快,賦值與修改元素也很簡單。
  3. 在聲明數組時的時候,必須同時指明數組的長度,過長會造成內存浪費,過短會造成數據溢出。
  4. System.Array.Resize這個泛型方法可以通過創建新的數組重置數組大小,多餘的數據會捨棄。
  • using System.Collections 集合類庫

 ArrayList(動態數組)

  1. ArrayList中的元素以object的形式存儲,是一個動態數組類型,相當於List<object>。
  2. 對於值類型來說,往ArrayList裏添加和修改冤死都會引起裝箱和拆箱的操作。

 Hashtable(哈希表)

  1. Hashtable存儲鍵值對,表中的鍵值對均爲object類型。

 SortedList(排序列表)

  1. SortedList存儲的也是類型均爲object的鍵值對。
  2. SortedList還可以用索引來訪問該索引對應的鍵和值。(GetKey(int index); GetByIndex(int index);)
  3. SortedList有泛型類型SortedList<TKey, TValue>。

 Stack(堆棧)

  1. Stack表示一個後進先出的對象集合。
  2. Stack中存儲的數據爲object數組,初始化時需要定義長度。
  3. Stack有泛型類型Stack<T>。

 Queue(隊列)

  1. Queue代表了一個先進先出的對象集合。
  2. Queue中存儲的數據爲object數組,初始化時需要定義長度。
  3. Queue有泛型類型Queue<T>。

 BitArray(點陣列)

  1. 表示一個使用值true和false(1和0)組成的數組,該類型是一個封閉累。
  2. 下爲BitArray的索引器。
    public bool this[int index] { get; set; }

     

  3. 用整數構造BitArray可以直接得到該整數的二進制轉換數列。
  • using System.Collections.Generic  泛型集合空間類庫

 List<T>(ArrayList的泛型等效類)

 Queue<T>(Queue的泛型等效類)

 Stack<T>(Stack的泛型等效類)

 SortedList<T>(SortedList的泛型等效類)

 DIctionary<TK,TV>(字典,Hashtable的泛型等效類)

 HashSet<T>(哈希集)

  1. 一組不包含重複元素的集合,並且存儲的元素沒有特定順序。
  2. 這個類提供了高性能的操作。

 SortedSet<T>(序列集)

  1. 一組不包含重複元素的集合,但是擁有自動排序的功能。
  2. 可以直接取到集合中的最大值和最小值。
  3. 自定義的類型T需要構造比較器。

 LinkedList<T>(雙向鏈表)

 SortedDictionary<T>(排序字典)

  1. 根據鍵進行排序的鍵值對集合。
  • using System.Collections.Specialized  強類型集合空間類庫

 NameValueCollection<T>

  1. 鍵和值均爲字符串的集合。
  2. 擁有自然序列索引。
  3. 鍵可以重複,當鍵重複添加時,兩者的值會直接合並。
            NameValueCollection myCol = new NameValueCollection();
            myCol.Add("red", "aaa");
            myCol.Add("green", "bbb");
            myCol.Add("blue", "ccc");
            myCol.Add("red", "ddd");

            Console.WriteLine(myCol["red"]);

result:

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