A queue represents a first-in, first-out (FIFO) collection. The classic analogy is to a line (or queue if you are British) at a ticket window. The first person to join the line ought to be the first person to come off the line to buy a ticket.

The Queue class is a good collection to use when you are managing a limited resource. For example, you might want to send messages to a resource that can handle only one message at a time. You would then create a message queue so that you can say to your clients: “Your message is important to us. Messages are handled in the order in which they are received.”

The Queue class has a number of member methods and properties, the most important of which are shown in Table 16-4.

Table 16-4. Queue members

Method or property



Public property that gets the number of elements in the Queue


Method that removes all objects from the Queue


Method that determines if an element is in the Queue


Method that copies the Queue elements to an existing one-dimensional array


Method that removes and returns the object at the beginning of the Queue


Method that adds an object to the end of the Queue


Method that returns an enumerator for the Queue


Method that returns the object at the beginning of the Queue without removing it


Method that copies the elements to a new array

Add elements to your queue with the Enqueue() method, and ...

Get Learning C# now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.