对IEnumerable<T>,IDictionary<Tkey,TValue>,ICollection<T>,IList<T>的总结

1、IEnumerable<T>接口和IEnumerable接口

实现了IEnumerable接口的集合表明该集合能够提供一个enumerator(枚举器)对象,支持当前的遍历集合。IEnumerable接口只有一个成员GetEnumerator()方法。

IEnumerator接口实现了IEnumerator接口的集合实现了从一个元素到另一个元素向前移动的方法,同时也可以随时返回初始处。
IEnumerator接口是只读的。

包括以下三个成员

MoveNext()方法调整遍历指针移向集合的下一个元素。注意,遍历指针的初始位置是集合中第一个元素的前面。要指向第一个元素,必须先调用一次MoveNext()方法。该方法返回一个布尔值,如果成功遍历到下一个元素,则返回true;如果指针移出末尾,则返回false。

Reset()方法用于设置遍历指针指向初始位置,即集合中第一个元素的前面。

Current属性返回集合中当前对象的引用。

 

2、ICollection<T>接口和ICollection接口

该接口是IEnumerable接口的子接口,定义了集合的大小、IEnumerator接口和同步方法。在IEnumerable接口的基础上增加了以下功能。

Count;该属性返回集合中元素的数目。

CopyTo(Array array, int index);该方法用于实现从集合中拷贝元素到一个一维数组中。

3、IList接口和IList<T>接口

ILIst接口包括以下方法和属性

 

Add()和Insert()方法用于向集合中添加条目,使用索引来指定项目要插入的位置,其中首元素的索引为0;Add()将新条目添加到尾部。

Remove()和RemoveAt()用于从列表中删除条目。Clear()用于删除所有条目。

IndexOf和Contains()用于搜索该列表。

this属性用于获取或设置索引指定的值。C#中可以使用[]运算符进行访问

 

IList<T>接口

 

ArrayList类
ArrayList类实际上是C#中的”动态数组”。数组在new创建后,其大小(Length)是不能改变的,而ArrayList中的数组元素的个数(Count)是可以改变的,元素可以加入及移出。

 

4、IDictionary<Tkey,Tvalue>接口IDictionary

 

IDictionary接口提供了一组”关键字/值”的集合,Hashtable是IDictonary的一个重要实现。

IDictionary接口是一个包含一组”关键字/值”对的数据结构,每个值都由相应的关键字来定义。关键字和值可以是任何数据类型,关键字必须唯一且非空。

Add()方法添加一个指定的关键字和值的条目到IDictionary接口。

this属性检索指定关键字所对应的值。

Keys和Values属性分别返回包含所有关键字和值的集合。

Remove()用于删除指定关键字对应的条目。Clear()用于删除所有条目。

GetEnumator()返回一个IDictionaryEnumerator,可用于遍历IDictionary接口。

 

IDictionaryEnumerator接口

IDictionaryEnumerator接口基于IEnumerator接口,可以使用Entry属性检索当前条目的关键字和值,或者使用Key和Value属性分别检索。Entry属性返回一个DictionaryEntry对象。

DictionaryEntry是一个值类型,包含Key和Value两个字段,每个字段都是一个对象引用。s

Hashtable类

Hashtable(哈希表)表示一个关键字和值相关联的集合,它的组织方式能够高效地检索其中的值。

 

HashMap和Hashtable及HashSet的区别

http://www.blogjava.net/fisher/archive/2006/12/13/87398.html

 

 

posted on 2012-03-26 10:45  皮卡丘^_^  阅读(990)  评论(0编辑  收藏  举报