use*_*408 3 .net c# ienumerable
如果你List<T>在一个类中使用一个集合甚至是arraylist,为什么你只想实现IEnumerable并返回枚举器就可以创建自己的枚举类.我在网上看到人们创建自己的可枚举类并实现当前,movenext等的例子......
好吧,如果你有一个集合类,你可能不仅仅包装了一些其他的Enumerable集合,它将完全返回你应该的内容.
也就是说,我总是喜欢使用yield关键字,甚至手动定义可枚举.定义当前/移动的人的大多数例子根本不知道产量或如何使用它.(我曾经实现了一个可枚举的类,它定义了Current/Move next.)
另一种情况可能是底层集合是旧的,并没有实现IEnumerable<T>,只是IEnumerable.如果您的集合是强类型的,那么您需要做的不仅仅是返回它们的枚举器(至少它将是一个.Cast<T>()调用).
如果你有一个底层集合,它也可能是你不想公开暴露的一些私有嵌套类(可能是某种自定义键值对)的集合.在这种情况下,您可能需要返回.Select调用而不是仅仅传递现有的枚举器(但很可能不需要实际实现您自己的迭代器).
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |