我正在尋找可以寫入後備集合的某種類型的迭代器/枚舉器。據我所知,它的c#枚舉是隻讀的。是否有一個C#等價於STL輸出迭代器?
5
A
回答
2
C#中沒有任何東西可以做這樣的事情。
你說得對IEnumerator的當前屬性只定義爲一個getter。
你需要編寫一個新的類和/或接口來支持這樣的事情。
interface IOutputable<T> {
IOutputer<T> GetOutputer();
}
interface IOutputer<T> {
T Current { set; }
bool MoveNext();
void Reset();
}
2
AFAIK輸出迭代器是一種創建對象序列的方法。在C#中有很多種方法可以做到這一點。例如,使用Stack
。而不是做一個C++風格增量/分配操作你會做一推:
var sequence = new Stack<int>();
sequence.Push(1);
sequence.Push(2);
除非你有這方面一個非常具體的應用程序,那麼可能在試圖模仿輸出迭代器在C#中沒有任何好處。
0
根據你想要做什麼,yield return
可能會做你正在尋找的東西。
相關問題
- 1. 是否有一個C#等價於m_nCmdShow?
- 2. 是否有一個C++等價於Java的STL容器類的Collection接口?
- 3. 等價迭代器
- 4. 是否有等價於slice :: chunks/windows迭代器來循環對,三元組等?
- 5. 迭代器等價於空指針?
- 6. C++ STL迭代器接口
- 7. C++ STL列表迭代器
- 8. 是否有C#等價於PHP的array_key_exists?
- 9. 是否有一個Java組件等價於C#控件IsDisposed?
- 10. 是否有一個PHP等價於Objective-C類別?
- 11. 是否有一個C#等價於Java的CountDownLatch?
- 12. 是否有一個C++等價於python的functools.partial
- 13. 等價的C C++ STL的
- 14. C++ STL地圖迭代器輸出值的十六進制
- 15. #define是否等價於一個函數?
- 16. Java等價於C++輸出流重載
- 17. STL迭代器:container.end()
- 18. 是否有一個等價的AddRange爲一個HashSet在C#
- 19. 在Java中是否有一個STL-Multiset等效容器?
- 20. 是否有一個packaged_task :: set_exception等價物?
- 21. 輸入迭代器+輸出迭代器+ X =前向迭代器
- 22. STL容器迭代器和C指針迭代器有什麼區別
- 23. 等價於迭代算法的遞歸
- 24. 迭代器和STL容器
- 25. VB.NET等價於C#代碼
- 26. STL向量,迭代器和插入(C++)
- 27. C++:使用常量與STL迭代器
- 28. C++ STL:問題與迭代器
- 29. C++ STL,常量迭代器,find()
- 30. 比較C++ STL列表迭代器
這應該是被接受的答案。 MerickOWA的方法可能會奏效,但這不是C#的做事方式。 – dan04 2011-12-16 15:00:11