QueueはIEnumerable<T>を実装しているためforeach文による列挙ができるようになっています。 foreach文による列挙では、Enqueueした順と同じ順、つまりDequeueする順と同じ順で要素が列挙されます。 デキュー操作とは異なり、Queueを列挙するだけでは要素の削除は行われません。
foreachでQueueの内容を列挙する
Imports System
Imports System.Collections.Generic
Class Sample
Shared Sub Main()
Dim q As New Queue(Of String)()
q.Enqueue("Alice")
q.Enqueue("Bob")
q.Enqueue("Charlie")
' For EachでQueueの内容を列挙
For Each e As String In q
Console.WriteLine(e)
Next
' 列挙してもQueueから要素は削除されず、内容は変わらない
Console.WriteLine($"Count = {q.Count}")
End Sub
End Class
実行結果
Alice Bob Charlie Count = 3