C# Queue類

2019-10-16 23:17:16

佇列表示一個先進先出的物件集合。當需要先進先出的容器存取時可使用佇列(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