1.1.3 迭代器
迭代器是C# 2.0中的新功能。迭代器是方法、get访问器或运算符,它使你能够在类或结构中支持foreach迭代,而不必实现整个IEnumerable接口。你只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成IEnumerable或IEnumerable接口的Current、MoveNext和Dispose方法。
这里要说明的一点是,实现迭代器有两种办法:
一种办法是需要创建迭代器的类型声明IEnumerable接口,然后实现其中的GetEnumerator方法,使用这种办法,编译器会自动生成Current、MoveNext和Dispose方法。然后在使用的时候,先调用GetEnumerator(),然后使用MoveNext来轮询其中的项,用Current属性获取当前项。
另一种方法是不需要显示声明IEnumerable接口,而是直接在里面写一个返回IEnumerable接口的方法,不过这样做带来的一个问题就是只能使用简单迭代,也就是说只能使用foreach循环。请看下面的例子:
//声明集合: class MainClass //显示集合项目: |
这种简单迭代的好处是使用起来比较方便,而且使用多个返回IEnumerable接口的方法可以使用不同的方式迭代。所以除非在相当必要的情况下,一般建议使用上述第二种办法创建迭代器。
| 回书目 上一节 下一节 |
|
· 网络工程师自测获奖名.. · 08年4月各大网上书店及.. · 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. |
· 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. |
|
||||
| · 网络故障排除宝典 · 访问控制列表(ACL)介绍 · 视频访谈:网管员如何踏.. · 首届中国IT工程师生态.. · 华为路由器配置 · 全面解析35岁技术人的.. · 企业数据恢复指南 · 龙芯要做中国的“奔腾” |
· 2008年上半年全国软考.. · 交换机故障解决指南 · Vista SP1对决XP SP3 · LAMP技术精解 · 微软出价446亿美元收购.. · AIX操作系统管理应用(.. · 华为员工自杀频频拷问.. · 三层交换技术专题 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 |
· Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · ADSL应用面面俱到 |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· 企业数据恢复指南 · RAID——磁盘阵列基础 · 路由器设置与口令恢复 · SOA 面向服务架构 · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 |
|||