我正在寻找可以写入后备集合的某种类型的迭代器/枚举器。据我所知,它的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++等价于Java的STL容器类的Collection接口?
- 2. 是否有等价于slice :: chunks/windows迭代器来循环对,三元组等?
- 3. 迭代器等价于空指针?
- 4. C++ STL列表迭代器
- 5. 是否有一个C#等价于Java的CountDownLatch?
- 6. 是否有一个PHP等价于Objective-C类别?
- 7. #define是否等价于一个函数?
- 8. 是否有一个等价的AddRange为一个HashSet在C#
- 9. 在Java中是否有一个STL-Multiset等效容器?
- 10. 是否有一个packaged_task :: set_exception等价物?
- 11. STL容器迭代器和C指针迭代器有什么区别
- 12. 迭代器和STL容器
- 13. VB.NET等价于C#代码
- 14. STL向量,迭代器和插入(C++)
- 15. C++:使用常量与STL迭代器
- 16. C++ STL:问题与迭代器
- 17. STL容器:两个迭代器
- 18. 是否有任何用于C++的Lua表迭代器封装?
- 19. 是否有C++等价于XCode 7的objective-c的-debugDescription方法?
- 20. 是否有一个Mercurial安装程序等价于VisualSVNServer?
- 21. 是否有一个DirectX等价于OpenGL的glLogicOp?
- 22. 是否有一个摩卡等价于Rspec的“mock()。as_null_object”?
- 23. 是否有一个Django模板语言等价于Python的range()?
- 24. 是否有一个ASP MVC等价于JSTL标签?
- 25. 是否有一个模块等价于node.js的Python的argparse?
- 26. 是否有一个等价于PHP spl_autload_register的ruby?
- 27. 是否有.Net等价于java.util.concurrent.Executor?
- 28. AsynchronousFileChannel是否有等价于transferTo?
- 29. 无法直接输出STL向量的迭代器值
- 30. STL是否包含一个在数组上工作的迭代器?
这应该是被接受的答案。 MerickOWA的方法可能会奏效,但这不是C#的做事方式。 – dan04 2011-12-16 15:00:11