<p>I have a Queue&lt;T&gt; object that I have initialised to a capacity of 2, but obviously that is just the capacity and it keeps expanding as I add items.  Is there already an object that automatically dequeues an item when the limit is reached, or is the best solution to create my own inherited class?</p>

Why wouldn't you just use an array with a size of 2?  A Queue is supposed to be able to dynamically grow and shrink.
Or create a wrapper class around an instance of
```
Queue<T>
```
instance and each time one enqueues a
```
<T>
```
object, check the size of the queue.  If larger than 2, dequeue the first item.