在C#中保持固定数量数据的最佳类

时间:2012-08-01 11:31:27

标签: c#

让我们假设我有很多需要处理的字符串,我喜欢将最后处理过的字符串放在内存中以避免重复处理它。我只需要记录最后100个字符串,这意味着如果我使用

List<string> oldString之后

oldString.Add(),我必须使用oldString.TakeFromEnd(100)如您所知,TakeFromEnd()不存在,这意味着如果我走这条路,我必须写很多保持100长List的东西会导致我能想象的糟糕表现。

我想问一下,系统类中是否有任何预先制作的数据只包含固定数量的数据,并在添加新数据时抛弃最旧的数据。感谢

[编辑]

Queue<string>确实非常好,使用.Any()检查是否已存在,使用.Enqueue()添加(不是Equeue,如下面的答案所示,它会拍摄N),使用.Count检查长度,.Dequeue()删除第一个添加的长度。

1 个答案:

答案 0 :(得分:7)

使用Queue

这个想法是:

public void addToQueue(Object obj){
    if (myQueue.Count > 100)
        myQueue.Dequeue();

    myQueue.Equeue(obj);
}

这大致是您需要使用的代码草图,但您会明白这一点。

然后您将拥有一个仅包含最新100条记录的队列