可能的重复:
固定大小的队列,它会在新的队列中自动将旧值出列
是否有一个集合会在添加新项目时自动删除旧项目?假设我有一个限制为十个项目的列表。添加第十一项后,删除第一项,容量仍为十。好像会有这样的东西,但是我找不到。有任何想法吗?
实现目标的一种可能方法:
public class FixedSizedQueue<T> : Queue<T>
{
private readonly int maxQueueSize;
private readonly object syncRoot = new object();
public FixedSizedQueue(int maxQueueSize)
{
this.maxQueueSize = maxQueueSize;
}
public new void Enqueue(T item)
{
lock (syncRoot)
{
base.Enqueue(item);
if (Count > maxQueueSize)
Dequeue(); // Throw away
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3817 次 |
| 最近记录: |