我正在寻找某种可以写入支持集合的迭代器/枚举器。据我了解,c# 枚举器是只读的。
问问题
184 次
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 回答