我正在尝试在扩展另一个类的类中执行此操作,该类实现IEnumerable<T>
:
public override IEnumerator<T> GetEnumerator(){
foreach (var item in base){
// Some logic here
yield return item;
// Some more logic here
}
}
但是,这会失败并出现编译错误,指出“base”使用不正确。
我想继承父类的所有行为,除了将一些“虚拟”项插入枚举集合并跳过其他一些项。
我通过手动操作枚举器来解决这个问题(主要是做foreach
扩展为除了调用GetEnumerator
而base
不是调用this
)。但这并不会产生最直接的代码。
所以我的问题是:这可以用foreach来完成吗?