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

检查IEnumerable <T>是否由yield关键字创建的正确方法

如何解决《检查IEnumerable<T>是否由yield关键字创建的正确方法》经验,为你挑选了1个好方法。



1> Heinzi..:

由yield关键字创建的状态机不是"可检测的".如果您找到一种方法来检测它,您将不得不依赖于某些特定于实现的提示(例如类型名称的特定模式;您的问题的注释中给出了一些示例),这些不是C#的一部分spec,因此,可能随时改变.

因此,没有正确的方法来检查IEnumerableyield关键字是否生成了一个.我认为正确的方法是不检查.这就是接口的用途:它们隐藏了实现.


既然你没有提到为什么你想知道IEnumerable是否是由yield关键字生成的,我会猜测并假设你真正想要问的是:

如果IEnumerable尚未实现,我怎样才能实现?

这个问题已经得到了回答:

有没有办法记住或物化IEnumerable?


接受的答案是检查它是否是`IList `,最好检查它是否是`ICollection `这是父接口.
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有