【发布时间】:2015-08-25 16:07:41
【问题描述】:
我写了一个实现 IEnumerable 的类:
public class MyEnumerable : IEnumerable<MyClass>
{
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
public IEnumerator<MyClass> GetEnumerator()
{
//Enumerate
}
}
我想“覆盖” Where 方法。我想做的是:
MyEnumerable myEnumerable = new MyEnumerable();
MyEnumerable myEnumerable2 = myEnumerable.Where(/*some predicate*/);
目前这是不可能的,因为 myEnumerable.Where() 返回一个 IEnumerable。 我想要的是 myEnumerable.Where() 返回一个 MyEnumerable。
这样可以吗?
谢谢
【问题讨论】:
-
你为什么要实现自己的 Enumerable?它给你买了什么?使用
yield和 Linq,越来越少需要实现自己的可枚举类。
标签: c# generics ienumerable