一、概述
1、集合命令空间:
- System.Collections.Specialized:专用于特性类型的集合类
- System.Collections.Concurrent:线程安全的集合类
- System.Collections.Immutable:不可变的集合类
2、集合接口
泛型集合层次关系图
- IEnumerable:如果将foreach语句用于集合,就需要IEnumerable接口。这个接口定义了方法GetEnumerable(),它返回一个实现了IEnumerable接口的枚举。
- ICollection:ICollection接口由泛型集合类实现。使用这个接口可以获得集合中的元素个数(Count属性),把集合复制到数组中(CopyTo()方法),还可以从集合中添加和删除元素(Add()、Remove()、Clear())
- IList:IList接口用于可通过位置访问其中的元素列表,这个接口定义了一个索引器,可以在集合的指定位置插入或删除某些项(Insert()和RemoveAt()方法)。IList集合派生自ICollection接口。
- ISet:ISet接口由集实现。
ISet<T>
是.NET 4新引入的接口,表示唯一值集。它反过来应用到了.NET 3.5中的HashSet<T>
上,以及.NET 4引入的一个新的实现——SortedSet<T>
。集允许合并不同的集,获得两个的交集,检查两个集是否重叠。ISet接口派生自ICollection接口。 - IDictionary:IDictionary接口包含键和值的泛型集合类实现。使用这个接口可以访问所有的键和值,使用键类型的索引器可以访问某些项,还可以添加和删除某些项。
- ILookup:Net3.5的新接口,ILookup接口类似于IDictionary接口,实现该接口的集合有键和值。且可以一个键包含多个值。
- IComparer:IComparer接口由比较器实现。通过Compare()方法给集合中的元素排序。
- IEqualityComparer: IEqualityComparer接口由一个比较器实现,该比较器可用于字典中的键。使用这个接口,可以对对象进行相等性比较。
3、集合类
各集合类底层接口关系图