C# 队列(Queue)
队列(Queue)是一种先进先出的数据结构。
当您需要对各项进行先进先出的访问时,则使用队列。
当您在列表中添加一项,称为 入队 当您从列表中移除一项时,称为 出队。
Queue 类的方法和属性
下表列出了 Queue 类的一些常用的 属性:
属性 | 描述 |
---|---|
Count | 获取 Queue 中包含的元素个数。 |
下表列出了 Queue 类的一些常用的 方法:
方法名 | 描述 |
---|---|
public virtual void Clear(); | 从 Queue 中移除所有的元素。 |
public virtual bool Contains(object obj); | 判断某个元素是否在 Queue 中。 |
public virtual object Dequeue(); | 移除并返回在 Queue 的开头的对象。 |
public virtual void Enqueue(object obj); | 向 Queue 的末尾添加一个对象。 |
public virtual object[] ToArray(); | 复制 Queue 到一个新的数组中。 |
public virtual void TrimToSize(); | 设置容量为 Queue 中元素的实际个数。 |
队列使用范例
下面的范例演示了队列(Queue)的使用:
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { Queue q = new Queue(); q.Enqueue('A'); q.Enqueue('M'); q.Enqueue('G'); q.Enqueue('W'); Console.WriteLine("Current queue: "); foreach (char c in q) Console.Write(c + " "); Console.WriteLine(); q.Enqueue('V'); q.Enqueue('H'); 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: A M G W Current queue: A M G W V H Removing values The removed value: A The removed value: M