Dot-Net

.NET 中 Queue<T> 的限制大小?

  • August 4, 2008

我有一個 Queue<T> 對象,我已將其初始化為容量 2,但顯然這只是容量,並且在我添加項目時它會不斷擴展。是否已經有一個對像在達到限制時自動使項目出列,或者是創建我自己的繼承類的最佳解決方案?

我已經找到了我正在尋找的基本版本,它並不完美,但它會完成這項工作,直到出現更好的東西。

public class LimitedQueue&lt;T&gt; : Queue&lt;T&gt;
{
   public int Limit { get; set; }

   public LimitedQueue(int limit) : base(limit)
   {
       Limit = limit;
   }

   public new void Enqueue(T item)
   {
       while (Count &gt;= Limit)
       {
           Dequeue();
       }
       base.Enqueue(item);
   }
}

引用自:https://stackoverflow.com/questions/1292