簡體   English   中英

是否有與STL輸出迭代器等效的C#?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM