[英]Is there a C# equivalent to the STL output iterator?
我正在尋找可以寫入支持集合的某種類型的迭代器/枚舉器。 據我了解,c#枚舉器是只讀的。
C#中沒有任何東西可以用來做這樣的事情。
你是對的IEnumerator的Current屬性只定義為getter。
你需要編寫一個新的類和/或接口來支持這樣的事情。
interface IOutputable<T> {
IOutputer<T> GetOutputer();
}
interface IOutputer<T> {
T Current { set; }
bool MoveNext();
void Reset();
}
AFAIK輸出迭代器是一種創建對象序列的方法。 在C#中有很多方法可以做到這一點。 例如,使用Stack
。 而不是做C ++樣式增量/分配操作,你做推動:
var sequence = new Stack<int>();
sequence.Push( 1 );
sequence.Push( 2 );
除非你有一個非常具體的應用程序,否則嘗試在C#中模擬輸出迭代器可能沒什么好處。
根據您要做的事情, yield return
可能會做您正在尋找的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.