Queues

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

Purpose

Count

Public property that gets the number of elements in the Queue

Clear()

Method that removes all objects from the Queue

Contains()

Method that determines if an element is in the Queue

CopyTo()

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

Dequeue()

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

Enqueue()

Method that adds an object to the end of the Queue

GetEnumerator()

Method that returns an enumerator for the Queue

Peek()

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

ToArray()

Method that copies the elements to a new array

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

Get Learning C# now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.