当前位置:  开发笔记 > 编程语言 > 正文

迭代器中的副作用被认为是有害的?

如何解决《迭代器中的副作用被认为是有害的?》经验,为你挑选了0个好方法。

我今天写了我的第一个C#迭代器.哇噢.

有趣的是,它有副作用.我的迭代器从目录中过滤掉无效文件,并返回一系列要处理的有效文件.当它遇到一个invlaid文件时,它会将它移动到另一个目录.

我尝试将其实现为LINQ查询,但实际上并不喜欢where子句的谓词具有副作用的事实.那是一种确定的气味.

我可以明确地实现它,循环遍历所有文件并依次处理好坏,但它不是很优雅.更好的解决方案是将其拆分为两个列表(好的和坏的)并依次处理每个列表.

但后来我想起了迭代器.我现在有一个迭代器,它产生有效的文件并处理(移动)无效的文件.

所以,我的问题是:迭代器有这样的副作用是不是一个坏主意?我是否在迭代器中隐藏了太多功能?

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有