常用集合类、接口及特点

IEnumerator

IEnumerator<T> 

实现遍历的基本方法 :Current,MoveNext(),Reset()        

IEnumerable

IEnumerable<T> 

最基础的所有集合都实现的可遍历接口,可以和IEnumerator接口合作

ICollection

ICollection<T>   

 无序的集合,包含集合的基本操作,Add(T),Remove(T),Clear(),Contains(),CopyTo

IList

IList<T>    

有序的集合,因此增加了IndexOf(),Insert(int,T),和RemoveAt(int)
 ISet<T>       没有顺序,元素不可重复,有集合的交,并,去除等操作
 IDictionary    最基本的字典接口
 Array      就是T[]类型,只能存储相同类型的数据。由于有逆变和协变(即可以数组级别的类型转换),速度很快。固定大小。
ArrayList        动态数组,可以在任意部位增加,删除元素,内部其实是由Array实现。在.NET 2.0之后由于新增List<T>,基本被deprecate了。包括ArrayList在内的集合一般容量(Capacity)都不固定,因此有TrimToSize方法压缩容量。
List<T>        有序集合,最常见,用得最多,各种增删查改都有

Stack

Stack<T>

  后入先出(LIFO),数据结构的C#实现,有Peek():查看顶层元素,Push():入栈,Pop():出栈。

Queue

Queue<T>  

 先入先出(FIFO),数据结构队列的C#实现,有Peek(),Enqueue():入队,Dequeue():出队。
Dictionary<Tkey,TValue>  用的最多的字典泛型
HashTable    键值对形式,基于键的哈希值而组织,没有泛型,因此,现在一般用Dictionary<Tkey,TValue>代替
HashSet<T>    无序集合,并且无法包含重复元素,速度快
NameValueCollection   没有泛型,功能类似于Dictionary<string,string> ,但可以一个键对应多个值(Request.QueryString就是这个类型),一个键可以对应多个值,且以逗号分隔。取出的值为"value1,value2,...valueN"形式。
KeyValuePair<Tkey,TValue> 一个键值对 
LinkedList 数据结构链表的C#实现,有AddBefore(LinkedListNode<T>,T),AddAfter,Find(T)等方法

SortedList

SortedList

有序键值对

HashSet<T>

实现了ISet接口,无序
SortedSet<T> 实现了Iset接口,有序



     * 除了Array外,ArrayList和各种集合类型都是动态分布容量(Capacity)的,可以根据TrimToSize方法压缩容量。

原文地址:https://www.cnblogs.com/Benjamin/p/3297163.html