Peek is the classic queue method, where First and Last are Linq methods. Since the queue most likely implements IEnumerable , you get First and Last methods that are not related to a strict queue.
<h / "> EDIT
This is not the end of the world to bend the law of the queue. It looks like you are using a structure appropriate to your needs. This may confuse the next programmer, although he expects the queue to act as a queue. Perhaps you are creating a class that extends Queue, called StackedQueue. Then, if someone needs to maintain their code, they do not expect queued behavior
source share