5

我正在寻找某种可以写入支持集合的迭代器/枚举器。据我了解,c# 枚举器是只读的。

4

3 回答 3

3

AFAIK 输出迭代器是一种创建对象序列的方法。在 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

根据您要执行的操作,ayield return也可能会执行您正在寻找的操作。

于 2011-12-15T15:58:22.553 回答