Dequeueメソッドと同様に、Queueの内容が空の場合にPeekメソッドを呼び出すと、例外InvalidOperationExceptionがスローされます。
Queueが空の状態でPeekメソッドを呼び出すとInvalidOperationExceptionとなる
Imports System
Imports System.Collections.Generic
Class Sample
Shared Sub Main()
Dim q As New Queue(Of String)()
Console.WriteLine($"Count = {q.Count}") ' 0
' Queueが空の状態でPeek操作を行うとInvalidOperationExceptionがスローされる
Console.WriteLine(q.Peek())
End Sub
End Class
実行結果
Count = 0 Unhandled exception. System.InvalidOperationException: Queue empty. at System.Collections.Generic.Queue`1.ThrowForEmptyQueue() at System.Collections.Generic.Queue`1.Peek() at Sample.Main() in /home/smdn/samplecodes/dotnet/cs/test.cs:line 12
したがって、Peekメソッドの戻り値を見てQueueが空かどうかを判断することはできません。 Queueが空であるかどうかを判断するにはPeekメソッドではなくCountプロパティを参照します。