数组
System.Array

Array是数组的抽象基类。数组的用法就不多提了,需要指出的是多维数组(multi-dimension)和交错数组(jagged)的区别。简单的说,交错的二维数组,每个一维都是可以不同的,而二维数组的每个一维都是等长的,这类似于C里面的二位数组和指针数组的关系。

System.Collections.BitArray
类似于Bit的数组,但是BitArray能将多个Bit放在一个字节里存储,从而节省存储空间(List<Bool>是一个Bit放在一个字节存储)。同时,BitArray也提供了一些位操作的方法。

System.Collections.Specialized.BitVector32结构
BitVector32用32位来存储一个Bit数组,优点在于可以索引每个比特位的值。


序列
System.Collections.Generic.ICollection<T>接口(:IEnumerable<T>
包含了Count、Add、Clear、Contains、Remove、CopyTo之类的属性和方法。


列表
System.Collections.Generic.IList<T>接口(:ICollection<T>, IEnumerable<T>
包含了IndexOf、Insert、RemoveAt以及索引器T this[int index]之类的方法和属性。

System.Collections.Generic.List<T>类(:IList<T>, ICollection<T>, IEnumerable<T>
IList接口的实现类,提供了IndexOf、LastIndexOf、BinarySearch、AsReadOnly、AddRange、InsertRange、GetRange、RemoveRange等方法。Count属性返回元素数目,Capacity属性会根据元素数目自动调整,也可以手动设置容量,还可以使用TrimExcess()去除多余的槽(slot)。

System.Collections.Generic.LinkedList<T>类(:ICollection<T>, IEnumerable<T>, ISerializable, IDeserializationCallback
LinkedList<T>是基于双向链表设计,而List<T>是基于线性表,因此可以知道,LinkedList<T>对于插入操作是常量级时间,索引操作会耗费较长时间,而List<T>对于索引操作是常量级时间,插入和删除都会引起空间的重分配,非常影响效率。

System.Collections.Specialized.StringCollectionl
类似于List<string>,但是不支持一些接口。

System.Collections.Generic.Queue<T>类(:ICollection<T>, IEnumerable<T>
提供了一些队列的操作,Enqueue、Dequeue、Peek等,TrimExcess可以用于减少队列大小以便正好适合内容。

System.Collections.Generic.Stack<T>类(:ICollection<T>, IEnumerable<T>
提供了一些栈的操作,Push、Pop、Peek等,TrimExcess可以用于减少队列大小以便正好适合内容。

posted on 2008-04-15 17:02  Yao Min  阅读(411)  评论(0编辑  收藏  举报