を実装する別のクラスを拡張するクラスでこれを実行しようとしていますIEnumerable<T>
:
public override IEnumerator<T> GetEnumerator(){
foreach (var item in base){
// Some logic here
yield return item;
// Some more logic here
}
}
ただし、これは、「ベース」が正しく使用されていないことを示すコンパイル エラーで失敗します。
列挙されたコレクションにいくつかの「仮想」アイテムを挿入し、他のいくつかのアイテムをスキップすることを除いて、親クラスのすべての動作を継承したいと考えています。
列挙子を手動で操作することでこれを回避しました(基本的に、の代わりにonforeach
を呼び出す以外に展開することを行います)。しかし、これは正確に最も単純なコードにはなりません。GetEnumerator
base
this
私の質問は次のとおりです。これは foreach で実行できますか?