2016-08-13 37 views
2

我正在嘗試確定「最近使用」集合的最佳解決方案。直觀地說,它既不是LIFO也不是FIFO。就「去除」項目而言,它是FIFO;但至於「檢索」它是LIFO。所以,隊列和堆棧都有一些限制。「最近使用」的C#集合

或者我正在推翻這整個事情,應該堅持陣列或列表?

+0

'堆棧'對於UI非常有用,因爲長度不是太長,所以您可以始終使用'stack = new Stack (stack.Skip(1));'從前面彈出。 – Enigmativity

回答

4

我會建議一個LinkedList集合。 LinkedList保存對列表中第一個和最後一個節點的引用(有效地讓你以LRU/MRU順序傳播)。它還有AddFirstRemove方法,因此您可以刪除值並在使用列表中的值時移動它。 MSDN

+0

謝謝!沒想過:) – Felix

+1

[這裏](https://www.informit.com/guides/content.aspx?g=dotnet&seqNum=625)一個實現 – thepirat000