没有合适的资源?快使用搜索试试~ 我知道了~
IEnumerable<T>、IEnumerable、ICollection<T>、IList<T>、ObservableCol...
4星 · 超过85%的资源 需积分: 14 17 下载量 97 浏览量
2009-09-01
21:21:05
上传
评论 1
收藏 83KB DOCX 举报
温馨提示
试读
3页
IEnumerable<T>、IEnumerable、ICollection<T>、IList<T>、ObservableCollectin<T>和Collection<T>的关系,里面还有个UML图,希望能对大家有所帮助!
资源推荐
资源详情
资源评论
ICollection 主要针对静态集合;IList 主要针对动态集合
IEnumerable<T>继承自 IEnumerable
ICollection<T>继承自 IEnumerable<T>
IList<T>继承自 ICollection<T>
IEnumerable 接口
实现了 IEnumerable 接口的集合表明该集合能够提供一个 enumerator(枚举器)对象,
支持当前的遍历集合。IEnumerable 接口只有一个成员 GetEnumerator()方法。
IEnumerator 接口是只读的,包括以下三个成员:
MoveNext()方法调整遍历指针移向集合的下一个元素。注意,遍历指针的初始位置是集
合中第一个元素的前面。要指向第一个元素,必须先调用一次 MoveNext()方法。该方法
返回一个布尔值,如果成功遍历到下一个元素,则返回 true;如果指针移出末尾,则返回
false。
Reset()方法用于设置遍历指针指向初始位置,即集合中第一个元素的前面。
Current 属性返回集合中当前对象的引用。
IEnumerable 和 IEnumerator 的区别:
1、一个 Collection 要支持 foreach 方式的遍历,必须实现 IEnumerable 接口(亦即,必须以某种
方式返回 IEnumerator object)。
2、IEnumerator object 具体实现了 iterator(通过 MoveNext(),Reset(),Current)。
3、从这两个接口的用词选择上,也可以看出其不同:IEnumerable 是一个声明式的接口,声明实现
该接口的 class 是“可枚举(enumerable)”的,但并没有说明如何实现枚举器(iterator);
IEnumerator 是一个实现式的接口,IEnumerator object 就是一个 iterator。
4、IEnumerable 和 IEnumerator 通过 IEnumerable 的 GetEnumerator()方法建立了连接,
client 可以通过 IEnumerable 的 GetEnumerator()得到 IEnumerator object,在这个意义上,将
GetEnumerator()看作 IEnumerator object 的 factory method 也未尝不可。
ICollection 集合
该接口是 IEnumerable 接口的子接口,定义了集合的大小、IEnumerator 接口和同步
方法。在 IEnumerable 接口的基础上增加了以下功能。
Count;该属性返回集合中元素的数目。
CopyTo(Array * array, * int * index);该方法用于实现从集合中拷贝元素到一个一维数组
中。
IList 接口
Add()和 Insert()方法用于向集合中添加条目,使用索引来指定项目要插入的位置,其中
首元素的索引为 0;Add()将新条目添加到尾部。
Remove()和 RemoveAt()用于从列表中删除条目。Clear()用于删除所有条目。
IndexOf 和 Contains()用于搜索该列表。
Item 属性用于获取或设置索引指定的值。C#中可以使用[]运算符进行访问。
IList 接口和 ArrayList 类的目的是实现动态数组,ArrayList 是 IList 的一个实现。
资源评论
- yueye512013-01-04概括精简,不错
- aimi199303262014-05-18很好的东西,,很实用
scottxu
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功