队列表示一个先进先出的对象集合。当需要先进先出的容器访问时可使用队列(Queue)。当在列表中添加项目时,将称为入队,当删除项目时,它被称为出队。
Queue类的方法和属性
下表列出了Queue类的一些常用属性:
| 属性 | 说明 | 
|---|---|
| Count | 获取队列中包含的元素数量。 | 
下表列出了Queue类的一些常用方法:
| 序号 | 方法 | 描述 | 
|---|---|---|
| 1 | public virtual void Clear(); | 清空队列,即从 Queue中删除所有元素。 | 
| 2 | public virtual bool Contains(object obj); | 确定元素是否在队列中 | 
| 3 | public virtual object Dequeue(); | 删除并返回队列开头的对象。 | 
| 4 | public virtual void Enqueue(object obj); | 将对象添加到队列的末尾。 | 
| 5 | public virtual object[] ToArray(); | 将队列复制到新数组。 | 
| 6 | public virtual void TrimToSize(); | 将容量设置为队列中实际的元素数量。 | 
例子
以下示例演示了Stack的用法:
using System;
using System.Collections;
namespace CollectionsApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Queue q = new Queue();
            q.Enqueue('Y');
            q.Enqueue('I');
            q.Enqueue('I');
            q.Enqueue('B');
            q.Enqueue('A');
            q.Enqueue('I');
            Console.WriteLine("Current queue: ");
            foreach (char c in q) Console.Write(c + " ");
            Console.WriteLine();
            q.Enqueue('.');
            q.Enqueue('C');
            q.Enqueue('O');
            q.Enqueue('M');
            Console.WriteLine("Current queue: ");
            foreach (char c in q) Console.Write(c + " ");
            Console.WriteLine();
            Console.WriteLine("Removing some values ");
            char ch = (char)q.Dequeue();
            Console.WriteLine("The removed value: {0}", ch);
            ch = (char)q.Dequeue();
            Console.WriteLine("The removed value: {0}", ch);
            Console.ReadKey();
        }
    }
}
当上述代码被编译并执行时,它产生以下结果:
Current queue:
Y I I B A I
Current queue:
Y I I B A I . C O M
Removing some values
The removed value: Y
The removed value: I
