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
using System;
using System.Collections.Generic;

class Sample {
  static void Main()
  {
    var q = new Queue<string>();

    // Queueに要素をEnqueue
    q.Enqueue("Alice");
    q.Enqueue("Bob");
    q.Enqueue("Charlie");

    // Queueが空になるまで内容をDequeue
    // (Queueが空の場合、TryDequeueメソッドはfalseを返す)
    while (q.TryDequeue(out var e)) {
      Console.WriteLine(e);
    }
  }
}
実行結果
Alice
Bob
Charlie