VB.Net Tutorial/Collections/Queue

Материал из VB Эксперт
Перейти к: навигация, поиск

Enqueue, Dequeue and Peek

<source lang="vbnet">Imports System

Imports System.Collections
Class Tester
    Public Sub Run( )
    End Sub "Run
    Public Shared Sub DisplayValues(ByVal myCollection As IEnumerable)
        Dim myEnumerator As IEnumerator = myCollection.GetEnumerator( )
        While myEnumerator.MoveNext( )
            Console.WriteLine("{0} ", myEnumerator.Current)
        End While
        Console.WriteLine( )
    End Sub "DisplayValues
    Shared Sub Main( )
        Dim intQueue As New Queue( )
        " populate the array
        Dim i As Integer
        For i = 0 To 4
            intQueue.Enqueue((i * 5))
        Next i
        " Display the Queue.
        Console.WriteLine("intQueue values:")
        DisplayValues(intQueue)
        " Remove an element from the queue.
        Console.WriteLine("(Dequeue) {0}", intQueue.Dequeue( ))
        " Display the Queue.
        Console.WriteLine("intQueue values:")
        DisplayValues(intQueue)
        " Remove another element from the queue.
        Console.WriteLine("(Dequeue) {0}", intQueue.Dequeue( ))
        " Display the Queue.
        Console.WriteLine("intQueue values:")
        DisplayValues(intQueue)
        " View the first element in the
        " Queue but do not remove.
        Console.WriteLine("(Peek)   {0}", intQueue.Peek( ))
        " Display the Queue.
        Console.WriteLine("intQueue values:")
        DisplayValues(intQueue)
    End Sub "Main
End Class "Tester</source>
intQueue values:
0
5
10
15
20
(Dequeue) 0
intQueue values:
5
10
15
20
(Dequeue) 5
intQueue values:
10
15
20
(Peek)   10
intQueue values:
10
15
20

Queue

<source lang="vbnet">Option Strict On Imports System.Collections Public Module modMain

  Public Sub Main()
      Dim waitingPassengers As New Queue
      
      Console.WriteLine(waitingPassengers.Count)
   
      waitingPassengers.Enqueue("asdf")
      Console.WriteLine(waitingPassengers.Peek())
      Console.WriteLine(waitingPassengers.Count)
      Console.WriteLine(waitingPassengers.Dequeue())
  End Sub

End Module</source>

0
asdf
1
asdf

Queue.Enqueue and ToArray

<source lang="vbnet">Imports System.Collections public class Test

  Private Shared m_Queue As New Queue
  public Shared Sub Main
       
       m_Queue.Enqueue("A")
       DisplayQueue()
       m_Queue.Enqueue("B")
       DisplayQueue()
       m_Queue.Enqueue("C")
       DisplayQueue()
       Dim txt As String = DirectCast(m_Queue.Dequeue(), String)
       Console.WriteLine(txt)
       DisplayQueue()
  End Sub
   Private Shared Sub DisplayQueue()
       For Each str As String In m_Queue.ToArray()
           Console.WriteLine(str)
       Next str
   End Sub

End class</source>

A
A
B
A
B
C
A
B
C