C#队列Queue详解

时间:2021-03-19 17:40:44

Queue定义 : System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。

          能对集合进行顺序处理(先进先出)。能接受null值,并且允许重复的元素。

 

C#队列Queue详解

构造函数: queue():   初始化 Queue 类的新实例,该实例为空,具有默认初始容量(32)并使用默认增长因子(2.0)。

方法: Dequeue()  : 将对象添加到 Queue 的结尾处。

 

示例:

 

[csharp]  view plain copy
  1. class Program   
  2. {   
  3.     static void Main(string[] args)   
  4.     {   
  5.         //创建一个队列   
  6.         Queue myQ = new Queue();   
  7.         myQ.Enqueue("The");//入队   
  8.         myQ.Enqueue("quick");   
  9.         myQ.Enqueue("brown");   
  10.         myQ.Enqueue("fox");   
  11.         myQ.Enqueue(null);//添加null   
  12.         myQ.Enqueue("fox");//添加重复的元素   
  13.    
  14.         // 打印队列的数量和值   
  15.         Console.WriteLine("myQ");   
  16.         Console.WriteLine("\tCount:    {0}", myQ.Count);   
  17.    
  18.         // 打印队列中的所有值   
  19.         Console.Write("Queue values:");   
  20.         PrintValues(myQ);   
  21.    
  22.         // 打印队列中的第一个元素,并移除   
  23.         Console.WriteLine("(Dequeue)\t{0}", myQ.Dequeue());   
  24.    
  25.         // 打印队列中的所有值   
  26.         Console.Write("Queue values:");   
  27.         PrintValues(myQ);   
  28.    
  29.         // 打印队列中的第一个元素,并移除   
  30.         Console.WriteLine("(Dequeue)\t{0}", myQ.Dequeue());   
  31.    
  32.         // 打印队列中的所有值   
  33.         Console.Write("Queue values:");   
  34.         PrintValues(myQ);   
  35.    
  36.         // 打印队列中的第一个元素   
  37.         Console.WriteLine("(Peek)   \t{0}", myQ.Peek());   
  38.    
  39.         // 打印队列中的所有值   
  40.         Console.Write("Queue values:");   
  41.         PrintValues(myQ);   
  42.    
  43.         Console.ReadLine();   
  44.    
  45.     }   
  46.    
  47.     public static void PrintValues(IEnumerable myCollection)   
  48.     {   
  49.         foreach (Object obj in myCollection)   
  50.             Console.Write("    {0}", obj);   
  51.         Console.WriteLine();   
  52.     }   
  53. }