有什么方法可以限制通用集合的大小吗?
我有一个 WriteableBitmap 堆栈,用于在每次更改时存储 WriteableBitmap 的克隆,这意味着我可以通过简单地从堆栈中弹出最新的 WriteableBitmap 来轻松撤消。
问题是内存使用,我想将这个堆栈限制为容纳 10 个对象,但我看不到允许我轻松执行此操作的属性。有没有办法,或者我是否必须在每次更改时检查堆栈大小,并在每次达到 10 时以及每次后续更改时将最后 10 个对象复制到新堆栈中?我知道该怎么做,但我希望有更简单的方法,是吗?
最佳答案
为了详细说明 Tilak 的回答,这里有一些示例代码:
public class LimitedSizeStack<T> : LinkedList<T>
{
private readonly int _maxSize;
public LimitedSizeStack(int maxSize)
{
_maxSize = maxSize;
}
public void Push(T item)
{
this.AddFirst(item);
if(this.Count > _maxSize)
this.RemoveLast();
}
public T Pop()
{
var item = this.First.Value;
this.RemoveFirst();
return item;
}
}
关于c# - 限制通用集合的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14101310/