Queue<T>.Clear 方法

定義

Queue<T> 移除所有物件。

C#
public void Clear ();

範例

下列程式代碼範例示範泛型類別的 Queue<T> 數種方法,包括 Clear 方法。

程式代碼範例會建立具有預設容量的字串佇列,並使用 Enqueue 方法來排入五個字串。 會列舉佇列的專案,這不會變更佇列的狀態。 方法 Dequeue 可用來取消佇列第一個字串。 方法 Peek 可用來查看佇列中的下一個專案,然後使用 Dequeue 方法將它取消佇列。

方法 ToArray 可用來建立陣列,並將佇列元素複製到該陣列,然後將陣列傳遞至 Queue<T> 採用 IEnumerable<T>的建構函式,以建立佇列的複本。 複本的專案隨即顯示。

建立佇列大小的兩次數組,而 CopyTo 方法會用來複製陣列元素,從陣列中間開始。 建 Queue<T> 構函式會再次用來建立佇列的第二個複本,其中包含開頭有三個 Null 元素。

方法 Contains 用來顯示字串 「four」 位於佇列的第一個複本中,之後 Clear 方法會清除複本,而 Count 屬性會顯示佇列是空的。

C#
using System;
using System.Collections.Generic;

class Example
{
    public static void Main()
    {
        Queue<string> numbers = new Queue<string>();
        numbers.Enqueue("one");
        numbers.Enqueue("two");
        numbers.Enqueue("three");
        numbers.Enqueue("four");
        numbers.Enqueue("five");

        // A queue can be enumerated without disturbing its contents.
        foreach( string number in numbers )
        {
            Console.WriteLine(number);
        }

        Console.WriteLine("\nDequeuing '{0}'", numbers.Dequeue());
        Console.WriteLine("Peek at next item to dequeue: {0}",
            numbers.Peek());
        Console.WriteLine("Dequeuing '{0}'", numbers.Dequeue());

        // Create a copy of the queue, using the ToArray method and the
        // constructor that accepts an IEnumerable<T>.
        Queue<string> queueCopy = new Queue<string>(numbers.ToArray());

        Console.WriteLine("\nContents of the first copy:");
        foreach( string number in queueCopy )
        {
            Console.WriteLine(number);
        }

        // Create an array twice the size of the queue and copy the
        // elements of the queue, starting at the middle of the
        // array.
        string[] array2 = new string[numbers.Count * 2];
        numbers.CopyTo(array2, numbers.Count);

        // Create a second queue, using the constructor that accepts an
        // IEnumerable(Of T).
        Queue<string> queueCopy2 = new Queue<string>(array2);

        Console.WriteLine("\nContents of the second copy, with duplicates and nulls:");
        foreach( string number in queueCopy2 )
        {
            Console.WriteLine(number);
        }

        Console.WriteLine("\nqueueCopy.Contains(\"four\") = {0}",
            queueCopy.Contains("four"));

        Console.WriteLine("\nqueueCopy.Clear()");
        queueCopy.Clear();
        Console.WriteLine("\nqueueCopy.Count = {0}", queueCopy.Count);
    }
}

/* This code example produces the following output:

one
two
three
four
five

Dequeuing 'one'
Peek at next item to dequeue: two
Dequeuing 'two'

Contents of the first copy:
three
four
five

Contents of the second copy, with duplicates and nulls:



three
four
five

queueCopy.Contains("four") = True

queueCopy.Clear()

queueCopy.Count = 0
 */

備註

Count 設為零,同時也發行集合元素的其他物件參照。

容量保持不變。 若要重設的 Queue<T>容量,請呼叫 TrimExcess。 修剪空白 Queue<T> 會將的 Queue<T> 容量設定為預設容量。

這個方法是 O (n) 作業,其中 nCount

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱