0
我正在设计一个Graph类(列表和矩阵实现)。我必须提供如GetAdjacencies(int vertex)
的方法。图。迭代迭代
在第一时间我想到返回IEnumerable
,那样我就可以使用foreach
声明来遍历结果。但在接下来的时刻,我意识到这是一个可怕的解决方案,因为每次发生新的列表时必须创建GetAdjacencies(int vertex)
。
接下来我想要返回Enumerator
,但这样我就无法用foreach
语句迭代结果。然而效率要好得多(我会实现许多图算法,我对优化非常感兴趣)。
你能告诉我什么是在C#中这样做的正确方法吗?
你的代码编译:)所以现在我怀疑我理解'yield'关键字的含义。你能解释一下它在目前的情况下做了什么? – pt12lol
参见这里例如:http://csharpindepth.com/articles/Chapter11/StreamingAndIterators.aspx –
而[这里](http://csharpindepth.com/articles/chapter6/iteratorblockimplementation.aspx)是血淋淋的细节:) –