ICollection接口:扩展了接口INumerable,扩展了属性Count,IsSynchronized和SyncRoot,另外还增加了方法CopyTo,在对象数组和对象的ICollection之间架起了桥梁。
Lists和IList:IList扩展了ICollection,而ICollection扩展了IEnumerable。IList定义了许多直观的方法,如Add、Remove、Insert和Clear等;还有IsFixedSize、IsReadOnly和Item属性,其中Item属性使得类可以很方便的使用索引器的方式访问其中的元素。
并且,Lists(IList)有3种形式:只读IList、大小固定的IList和可变的IList。
字典和IDictionary:IDictionary扩展了ICollection,但不表示可以索引的一组对象,每个元素都是一个存储在 DictionaryEntry(结构) 对象中的关键字/值对集合。其Add方法也把关键字和值作为参数。Item属性索引器也按照关键字来索引。
散列表(Hashtable)要点:Hashtable实现了IDictionary接口,因此在Hashtable中存储的是DictionaryEntry,而使用foreach 语句时,需要集合中每个元素的类型。由于 Hashtable 的每个元素都是一个键/值对,因此元素类型既不是键的类型,也不是值的类型。而是 DictionaryEntry 类型。
Queue和Stack:Queue表示对象的先进先出集合。队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 Queue 中的对象在一端插入,从另一端移除。
Stack与Queue正好相反。