IEnumeratorとIEnumerableを実装するコレクションクラスを開発しています。
私の最初のアプローチでは、それらを直接実装しました。これで、yieldキーワードを発見し、IEnumerator / IEnumerableインターフェイスを、yieldを使用してループ内でIEnumerableを返す読み取り専用プロパティValuesに置き換えて、すべてを単純化することができました。
私の質問:IEnumerable / IEnumeratorを実装せずに、クラス自体を反復処理できるような方法でyieldを使用することは可能ですか?
つまり、フレームワークコレクションと同様の機能が必要です。
List<int> myList = new List<int>();
foreach (int i in myList)
{
...
}
これは可能ですか?
更新:私の質問はひどい言い回しだったようです。IEnumeratorまたはIEnumerableを実装してもかまいません。私はそれを行う唯一の方法は古いCurrent/MoveNext/Resetメソッドを使用することだと思っていました。