Queueが空のときにDequeueメソッドを呼び出すと、例外InvalidOperationExceptionがスローされます。 一方、TryDequeueメソッドを使うと、Queueが空の場合でも例外をスローさせずにポップ操作を試行することができます。 TryDequeueメソッドは.NET Standard 2.1/.NET Core 2.0以降で使用できます。
TryDequeueメソッドは、成功した場合はデキューした要素をoutパラメータで出力し、戻り値true
を返します。 失敗した場合、つまりQueueが空だった場合は単に戻り値false
を返します。
TryDequeueメソッドを使ってQueueに対してデキュー操作を試行する .NET Standard 2.1/.NET Core 2.0
Imports System
Imports System.Collections.Generic
Class Sample
Shared Sub Main()
Dim q As New Queue(Of String)()
' Queueに要素をEnqueue
q.Enqueue("Alice")
q.Enqueue("Bob")
q.Enqueue("Charlie")
' Queueが空になるまで内容をDequeue
' (Queueが空の場合、TryDequeueメソッドはFalseを返す)
Dim e As String = Nothing
While q.TryDequeue(e)
Console.WriteLine(e)
End While
End Sub
End Class
実行結果
Alice Bob Charlie