Класс Queue(Of T) представляет набор однотипных объектов, который работает по алгоритму FIFO ("первый вошел - первый вышел"),
то есть как стандартная очередь.
Рассмотрим некоторые основные методы класса Queue(Of T):
Dequeue: извлекает и возвращает первый элемент очереди
Enqueue: добавляет элемент в конец очереди
Peek: просто возвращает первый элемент из начала очереди без его удаления
Теперь рассмотрим применение класса очереди в программе:
Module Module1
Sub Main()
Dim nums As New Queue(Of Integer)()
nums.Enqueue(3) 'в очереди 3
nums.Enqueue(5) 'в очереди 3, 5
nums.Enqueue(8) 'в очереди 3, 5, 8
'получение первого элемента очереди с его извлечением
Dim queueElement As Integer = nums.Dequeue() 'теперь в очереди 5, 8
Console.WriteLine(queueElement)
Dim people As New Queue(Of Person)()
people.Enqueue(New Person() With {.Name = "Tom"})
people.Enqueue(New Person() With {.Name = "Bill"})
people.Enqueue(New Person() With {.Name = "John"})
'получение первого элемента без его извлечения
Dim pp As Person = people.Peek()
Console.WriteLine(pp.Name)
Console.WriteLine("Сейчас в очереди {0} человек", people.Count)
'теперь в очереди Tom, Bill, John
For Each p As Person In people
Console.WriteLine(p.Name)
Next
'Извлекаем первый элемент в очереди - Tom
Dim tom As Person = people.Dequeue() 'теперь в очереди Bill, John
Console.WriteLine(tom.Name)
Console.ReadLine()
End Sub
Class Person
Public Property Name() As String
End Class
End Module