2010-11-09 24 views
0

我需要從「寫入日誌」功能中捕獲最後5行,以便將其添加到調試電子郵件中。我想不出一個簡單的方法來做到這一點。如何輕鬆地將最後5行添加/保留在某個數組中

我的確認爲我可以有一個數組,其中有5個項目,但我仍然需要洗牌現有項目以添加當前數據。

任何想法?

如果你想使用List(Of LogEntry)我使用vb.net 2005

+2

您是否熟悉「隊列」數據結構? – Gabe 2010-11-09 07:04:34

回答

2

使用隊列。如果將新項目添加到隊列時超過6,則將一個項目出列。

0

,僞代碼是這樣的:

  1. 追加新LogEntry到列表中。
  2. 列表中有超過五個項目時,請移除位置0處的項目(請參閱RemoveAt)。

這不是空間或CPU效率,但它肯定會伎倆。

0

我的確認爲我可以有一個數組,其中有5個項目,但我仍然需要洗牌現有項目以添加當前數據。

是的,您可以移動數組內容來爲新項目騰出空間,丟棄最舊的項目。

更好的辦法是使用一個雙鏈表,它可以讓你在列表的開頭添加一個項目,並從列表的末尾刪除項目(反之亦然),而不需要觸及其他元素。

在.NET中,您需要LinkedList類,然後根據需要使用AddFirst和RemoveLast(或AddLast和RemoveFirst)。

或者,您可以使用Queue類(可能實現爲鏈接列表),然後調用Enqueue和Dequeue。

相關問題