我需要 C# 中的一个类来使用以下方法存储不超过最后 N 项:
Add(T item) {
if (mylist.Count >= N)
remove the first(oldest) item;
add a new item to the tail;
}
并具有获取指定索引处的项目的属性。
因此,正确的方法可能是将我的类基于以下类之一:List、Queue、ConcurrentQueue、Dequeue(可能有所不同?)。当然,一个类应该为头部和尾部提供相等的访问时间。
问题是,哪个类最适合我的目的?
最佳答案
使用 LinkedList(t) 来完成此操作。这给了你第一个、最后一个和计数。这样,一旦计数达到某个点,就可以删除最后一个。
myList = new LinkedList();
Add(T item){
if (myList.Count >= N)
myList.RemoveLast();
myList.AddFirst(item);
}
在这种情况下,最后一个项目是最旧的,第一个项目是最新的。
关于c# - 当我添加新项目时,列表会自动删除最旧的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815140/