5

バッキングコレクションに書き込むことができるある種のイテレータ/列挙子を探しています。私が理解しているように、C# 列挙子は読み取り専用です。

4

3 に答える 3

3

私の知る限り、出力イテレータは一連のオブジェクトを作成する方法です。C# でこれを行う方法は無数にあります。たとえば、 を使用しStackます。C++ スタイルのインクリメント/割り当て操作を行う代わりに、プッシュを行います。

var sequence = new Stack<int>();
sequence.Push( 1 );
sequence.Push( 2 );

非常に特殊なアプリケーションがない限り、C# で出力反復子をエミュレートしようとしてもおそらくメリットはありません。

于 2011-12-15T15:37:22.467 に答える
2

C# には、そのようなことを行うものは何もありません。

そうです、IEnumerator の Current プロパティは getter のみとして定義されています。

そのようなことをサポートするには、新しいクラスやインターフェースを作成する必要があります。

interface IOutputable<T> {
  IOutputer<T> GetOutputer();
  }

interface IOutputer<T> {

  T Current { set; }

  bool MoveNext();
  void Reset();
  }
于 2011-12-15T15:23:41.173 に答える
0

何をしようとしているのかによっては、yield returnあなたが探していることもできるかもしれません。

于 2011-12-15T15:58:22.553 に答える