C#中各种集合

  • using System

 Array(数组)

  1. C#中所有数组的基类。
  2. 数组在内存中是连续存储的,所以它的索引速度非常快,赋值与修改元素也很简单。
  3. 在声明数组时的时候,必须同时指明数组的长度,过长会造成内存浪费,过短会造成数据溢出。
  4. System.Array.Resize这个泛型方法可以通过创建新的数组重置数组大小,多余的数据会舍弃。
  • using System.Collections 集合类库

 ArrayList(动态数组)

  1. ArrayList中的元素以object的形式存储,是一个动态数组类型,相当于List
  2. 对于值类型来说,往ArrayList里添加和修改冤死都会引起装箱和拆箱的操作。
  3.  Hashtable(哈希表)

    1. Hashtable存储键值对,表中的键值对均为object类型。

     SortedList(排序列表)

    1. SortedList存储的也是类型均为object的键值对。
    2. SortedList还可以用索引来访问该索引对应的键和值。(GetKey(int index); GetByIndex(int index);)
    3. SortedList有泛型类型SortedList

     Stack(堆栈)

    1. Stack表示一个后进先出的对象集合。
    2. Stack中存储的数据为object数组,初始化时需要定义长度。
    3. Stack有泛型类型Stack

     Queue(队列)

    1. Queue代表了一个先进先出的对象集合。
    2. Queue中存储的数据为object数组,初始化时需要定义长度。
    3. Queue有泛型类型Queue

     BitArray(点阵列)

    1. 表示一个使用值true和false(1和0)组成的数组,该类型是一个封闭累。
    2. 下为BitArray的索引器。
      public bool this[int index] { get; set; }

       

    3. 用整数构造BitArray可以直接得到该整数的二进制转换数列。
    • using System.Collections.Generic  泛型集合空间类库

     List(ArrayList的泛型等效类)

     Queue(Queue的泛型等效类)

     Stack(Stack的泛型等效类)

     SortedList(SortedList的泛型等效类)

     DIctionary(字典,Hashtable的泛型等效类)

     HashSet(哈希集)

    1. 一组不包含重复元素的集合,并且存储的元素没有特定顺序。
    2. 这个类提供了高性能的操作。

     SortedSet(序列集)

    1. 一组不包含重复元素的集合,但是拥有自动排序的功能。
    2. 可以直接取到集合中的最大值和最小值。
    3. 自定义的类型T需要构造比较器。

     LinkedList(双向链表)

     SortedDictionary(排序字典)

    1. 根据键进行排序的键值对集合。
    • using System.Collections.Specialized  强类型集合空间类库

     NameValueCollection

    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:

    你可能感兴趣的:(C#笔记)