Queue<T> 构造函数

重载

 Queue() 初始化 Queue 类的新实例，该实例为空并且具有默认初始容量。 Queue(IEnumerable) 初始化 Queue 类的新实例，该实例包含从指定集合复制的元素并且具有足够的容量来容纳所复制的元素。 Queue(Int32) 初始化 Queue 类的新实例，该实例为空并且具有指定的初始容量。

示例

``````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
*/
``````
``````Imports System.Collections.Generic

Module Example

Sub Main

Dim numbers As New Queue(Of 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.
For Each number As String In numbers
Console.WriteLine(number)
Next

Console.WriteLine(vbLf & "Dequeuing '{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(Of T).
Dim queueCopy As New Queue(Of String)(numbers.ToArray())

Console.WriteLine(vbLf & "Contents of the first copy:")
For Each number As String In queueCopy
Console.WriteLine(number)
Next

' Create an array twice the size of the queue, compensating
' for the fact that Visual Basic allocates an extra array
' element. Copy the elements of the queue, starting at the
' middle of the array.
Dim array2((numbers.Count * 2) - 1) As String
numbers.CopyTo(array2, numbers.Count)

' Create a second queue, using the constructor that accepts an
' IEnumerable(Of T).
Dim queueCopy2 As New Queue(Of String)(array2)

Console.WriteLine(vbLf & _
"Contents of the second copy, with duplicates and nulls:")
For Each number As String In queueCopy2
Console.WriteLine(number)
Next

Console.WriteLine(vbLf & "queueCopy.Contains(""four"") = {0}", _
queueCopy.Contains("four"))

Console.WriteLine(vbLf & "queueCopy.Clear()")
queueCopy.Clear()
Console.WriteLine(vbLf & "queueCopy.Count = {0}", _
queueCopy.Count)
End Sub
End Module

' 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 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
``````

Queue<T>()

``````public:
Queue();``````
``public Queue ();``
``Public Sub New ()``

注解

a Queue<T> 的容量是可以容纳的元素 Queue<T> 数。 随着元素添加到 a Queue<T>，通过重新分配内部数组，容量会自动增加。

Queue<T>(IEnumerable<T>)

``````public:
Queue(System::Collections::Generic::IEnumerable<T> ^ collection);``````
``public Queue (System.Collections.Generic.IEnumerable<T> collection);``
``new System.Collections.Generic.Queue<'T> : seq<'T> -> System.Collections.Generic.Queue<'T>``
``Public Sub New (collection As IEnumerable(Of T))``

collection
IEnumerable<T>

例外

`collection``null`

注解

a Queue<T> 的容量是可以容纳的元素 Queue<T> 数。 随着元素添加到 a Queue<T>，通过重新分配内部数组，容量会自动增加。

Queue<T>(Int32)

``````public:
Queue(int capacity);``````
``public Queue (int capacity);``
``new System.Collections.Generic.Queue<'T> : int -> System.Collections.Generic.Queue<'T>``
``Public Sub New (capacity As Integer)``

参数

capacity
Int32

Queue<T> 可包含的初始元素数。

例外

`capacity` 小于零。

注解

a Queue<T> 的容量是可以容纳的元素 Queue<T> 数。 随着元素添加到 a Queue<T>，通过重新分配内部数组，容量会自动增加。