是否有一个c#等效于STL输出迭代器?

本文关键字:STL 输出 迭代器 有一个 是否 | 更新日期: 2023-09-27 18:17:54

我正在寻找某种类型的迭代器/枚举器,可以写入后备集合。据我所知,c#枚举器是只读的

是否有一个c#等效于STL输出迭代器?

输出迭代器是创建对象序列的一种方法。在c#中有无数种方法可以做到这一点。例如,使用Stack。而不是做一个c++风格的增量/赋值操作,你可以做一个push:

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

除非你有一个非常特殊的应用程序,否则在c#中模拟输出迭代器可能没有任何好处。

c#中没有现成的东西来做这样的事情。

你是对的IEnumerator的Current属性只定义为getter。

你需要写一个新的类和/或接口来支持这样的事情。

interface IOutputable<T> {
  IOutputer<T> GetOutputer();
  }
interface IOutputer<T> {
  T Current { set; }
  bool MoveNext();
  void Reset();
  }

根据您想要做的事情,yield return也可能做您正在寻找的事情。