2010-11-09 25 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。

相关问题