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)是血淋淋的細節:) –