.NET集合类初探

数组
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可以用于减少队列大小以便正好适合内容。

转载于:https://www.cnblogs.com/forck/archive/2008/04/15/1154648.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值