Freigeben über


Queue.Dequeue Methode

Definition

Entfernt das Objekt am Anfang der Queue und gibt es zurück.

public:
 virtual System::Object ^ Dequeue();
public virtual object Dequeue ();
public virtual object? Dequeue ();
abstract member Dequeue : unit -> obj
override this.Dequeue : unit -> obj
Public Overridable Function Dequeue () As Object

Gibt zurück

Das Objekt, das vom Anfang der Queue entfernt wird.

Ausnahmen

Beispiele

Das folgende Beispiel zeigt, wie Sie Elemente hinzufügen Queue, Elemente aus dem Queueentfernen oder das Element am Anfang des Queueanzeigen.

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myCollection );
int main()
{
   
   // Creates and initializes a new Queue.
   Queue^ myQ = gcnew Queue;
   myQ->Enqueue( "The" );
   myQ->Enqueue( "quick" );
   myQ->Enqueue( "brown" );
   myQ->Enqueue( "fox" );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
   
   // Removes an element from the Queue.
   Console::WriteLine( "(Dequeue)\t{0}", myQ->Dequeue() );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
   
   // Removes another element from the Queue.
   Console::WriteLine( "(Dequeue)\t{0}", myQ->Dequeue() );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
   
   // Views the first element in the Queue but does not remove it.
   Console::WriteLine( "(Peek)   \t{0}", myQ->Peek() );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
}

void PrintValues( IEnumerable^ myCollection )
{
   IEnumerator^ myEnum = myCollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "    {0}", obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 Queue values:    The    quick    brown    fox
 (Dequeue)       The
 Queue values:    quick    brown    fox
 (Dequeue)       quick
 Queue values:    brown    fox
 (Peek)          brown
 Queue values:    brown    fox

 */
using System;
using System.Collections;
public class SamplesQueue  {

   public static void Main()  {

      // Creates and initializes a new Queue.
      Queue myQ = new Queue();
      myQ.Enqueue( "The" );
      myQ.Enqueue( "quick" );
      myQ.Enqueue( "brown" );
      myQ.Enqueue( "fox" );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Removes an element from the Queue.
      Console.WriteLine( "(Dequeue)\t{0}", myQ.Dequeue() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Removes another element from the Queue.
      Console.WriteLine( "(Dequeue)\t{0}", myQ.Dequeue() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Views the first element in the Queue but does not remove it.
      Console.WriteLine( "(Peek)   \t{0}", myQ.Peek() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );
   }

   public static void PrintValues( IEnumerable myCollection )  {
      foreach ( Object obj in myCollection )
         Console.Write( "    {0}", obj );
      Console.WriteLine();
   }
}
/*
This code produces the following output.

Queue values:    The    quick    brown    fox
(Dequeue)       The
Queue values:    quick    brown    fox
(Dequeue)       quick
Queue values:    brown    fox
(Peek)          brown
Queue values:    brown    fox

*/
Imports System.Collections

Public Class SamplesQueue
    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new Queue.
        Dim myQ As New Queue()
        myQ.Enqueue("The")
        myQ.Enqueue("quick")
        myQ.Enqueue("brown")
        myQ.Enqueue("fox")
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Removes an element from the Queue.
        Console.WriteLine("(Dequeue)    {0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Removes another element from the Queue.
        Console.WriteLine("(Dequeue)    {0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Views the first element in the Queue but does not remove it.
        Console.WriteLine("(Peek)       {0}", myQ.Peek())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
    End Sub

    Public Shared Sub PrintValues(myCollection As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myCollection
            Console.Write("    {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' Queue values:    The    quick    brown    fox
' (Dequeue)    The
' Queue values:    quick    brown    fox
' (Dequeue)    quick
' Queue values:    brown    fox
' (Peek)       brown
' Queue values:    brown    fox

Hinweise

Diese Methode ähnelt der Peek-Methode, aber Peek ändert die Queue nicht.

null kann als Queue Wert hinzugefügt werden. Um zwischen einem NULL-Wert und dem Ende von Queuezu unterscheiden, überprüfen Sie die Count Eigenschaft, oder fangen Sie den ab, der InvalidOperationExceptionausgelöst wird, wenn leer Queue ist.

Diese Methode ist ein O(1) Vorgang.

Gilt für:

Weitere Informationen