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:

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