构建可反转排序的泛型字典类(4)--IDictionary接口2010-11-26C#对集合类型有统一的规范。它的好处不言而喻,所有集合类都有一些统一的调用方法和属性,这使得学习成本大大降低。统一的规范就是通过接口来实现的(关于接口,如果不熟,请参考http://www.enet.com.cn/eschool/video/c/30.shtml ),另一方面一些类也会直接调用这些标准接口,使得我们写出来的类有更好的兼容性。最典型的例子莫过于IEnumerable接口,只要实现了它就可以使用foreach语句进行调用。我们将要给ReversibleSortedList实现的是IDictionary接口,先来看看它的定义:public interface IDictionary : ICollection, IEnumerableICollection接口是所有集合类的基接口,FCL中所有集合,不管是哪种方式的集合都实现它。IEnumerable接口则是枚举器接口,实现了它就可以使用foreach语句对它进行访问。IDictionary接口则继承自这两个接口,它表示键/值对的非通用集合。ICollection接口的定义为:public interface ICollection : IEnumerable从这个定义可以看出,所有集合类都应该支持foreach语句进行访问。表1列出了各个接口的成员
接口 | 成员 | 说明 |
ICollection | Count属性 | 获取 ICollection 中包含的元素数 |
IsSynchronized属性 | 获取一个值,该值指示是否同步对 ICollection 的访问(线程安全) |
SyncRoot属性 | 获取可用于同步 ICollection 访问的对象 |
CopyTo方法 | 从特定的 Array 索引处开始,将 ICollection 的元素复制到一个 Array 中 |
IEnumerable | GetEnumerator方法 | 返回一个循环访问集合的枚举器 |
IDictionary | IsFixedSize属性 | 获取一个值,该值指示 IDictionary 对象是否具有固定大小 |
IsReadOnly属性 | 获取一个值,该值指示 IDictionary 对象是否为只读 |
Item属性 | 获取或设置具有指定键的元素 |
Keys属性 | 获取 ICollection 对象,它包含 IDictionary 对象的键 |
Values属性 | 获取 ICollection 对象,它包含 IDictionary 对象中的值 |
Add方法 | 在 IDictionary 对象中添加一个带有所提供的键和值的元素 |
Clear方法 | 从 IDictionary 对象中移除所有元素 |
Contains方法 | 确定 IDictionary 对象是否包含具有指定键的元素 |
GetEnumerator方法 | 返回一个用于 IDictionary 对象的 IDictionaryEnumerator 对象 |
Remove方法 | 从 IDictionary 对象中移除带有指定键的元素 |