C# Queue (队列)

  • Queue

    Queue类它代表对象的先进先出集合。当您需要项目的先进先出访问时使用。当您在列表中添加项目时,它称为enqueue (入队),而当您删除项目时,它称为dequeue (出队)。
  • Queue类的方法和属性

    Queue 类的方法和属性
    下表列出了 Queue 类的一些常用属性-
    属性 功能
    Count 获取队列中包含的元素数。
    下表列出了Queue类的一些常用方法-
    方法 功能
    public virtual void Clear(); 从队列中删除所有元素。
    public virtual bool Contains(object obj); 确定元素是否在队列中。
    public virtual object Dequeue(); 删除并返回队列开始处的对象。
    public virtual void Enqueue(object obj); 将一个对象添加到队列的末尾。
    public virtual object[] ToArray(); 将队列复制到新阵列。
    public virtual void TrimToSize(); 将容量设置为队列中元素的实际数量。
  • 示例

    以下示例演示了概念-
    
    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