假设我有很多字符串需要处理,我喜欢将最后处理的字符串放在内存中以避免重复处理它。我只需要记录最后 100 个字符串,这意味着如果我使用
List<string> oldString
在 oldString.Add()
之后, 我必须使用 oldString.TakeFromEnd(100)
如您所知,TakeFromEnd()
不存在,这意味着如果我走这条路,我必须写很多东西来保持 100 的长度 List
我可以想象这会导致糟糕的表现。
请问,系统类中有没有预制的,只保存固定数量的数据,并在添加新数据时丢弃最旧的数据。谢谢
[编辑]
Queue<string>
确实很好,用.Any()
检查是否已经存在,使用 .Enqueue()
要添加(不是下面回答的 Equeue,它射出一个 N),使用 .Count
检查长度,.Dequeue()
删除第一个添加的。
最佳答案
使用 Queue
想法是:
public void addToQueue(Object obj){
if (myQueue.Count > 100)
myQueue.Dequeue();
myQueue.Equeue(obj);
}
这大致是您需要使用的代码草图,但您会明白这一点。
然后您将拥有一个仅包含最新 100 条记录的队列
关于c# - 在 C# 中保存固定数量数据的最佳类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758306/