什么场景下,会自己实现这两个接口: IEnumerable IEnumerator

config_man 2014-05-13 05:48:50
IEnumerable: 公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。【一个获取迭代器的方法】
IEnumerator : 支持对非泛型集合的简单迭代。【一个MoveNext、一个Current、一个Reset】

看了网上其他关联的帖子,都是写的代码,没看到实实在在的应用场景,自己开发过程中,也没遇过,所以想请问大神,什么样的场景下才会自己去实现这两个接口,来迭代非泛型集合。
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouxiulu 2014-05-13
  • 打赏
  • 举报
回复
你去把设计模式里的迭代模式看一下
threenewbee 2014-05-13
  • 打赏
  • 举报
回复
在C# 2.0以前,因为没有yield关键字,为了实现一个迭代器,有必要手工实现它们,参考: http://bbs.csdn.net/topics/390786969 在这个例子中,我们如果需要遍历一个字符串中的所有单词,当然有一个办法是用Split全部分割并且装入数组。但是如果我们只需要迭代出前5个单词,这么做白白浪费了内存和CPU。如果借助迭代器,我们可以按需遍历其中开头的一部分。
Ptrtoptr 2014-05-13
  • 打赏
  • 举报
回复
这两个接口是用来装B的,我装B的时候才用。微软喜欢搞这些一层一层的框架。
config_man 2014-05-13
  • 打赏
  • 举报
回复
引用 1 楼 wddw1986 的回复:
需要就用,你没用过说明你不需要。
你这是站着说话不腰疼啊。
cheng2005 2014-05-13
  • 打赏
  • 举报
回复
需要就用,你没用过说明你不需要。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧