TryDequeueメソッドと同様に、TryPeekメソッドを使うと、Queueが空の場合でも例外をスローさせずにピーク操作を試行することができます。 TryPeekメソッドは.NET Standard 2.1/.NET Core 2.0以降で使用できます。

TryPeekメソッドを使ってQueueに対してPeek操作を試行する .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に要素を追加する
    q.Enqueue("Alice");

    // Queueに要素がある状態で先頭の要素を参照する
    if (q.TryPeek(out var e1))
      Console.WriteLine(e1);
    else
      Console.WriteLine("(empty)");

    // Queueから要素を取り出す
    q.Dequeue();

    // Queueが空の状態で先頭の要素を参照する
    if (q.TryPeek(out var e2))
      Console.WriteLine(e2);
    else
      Console.WriteLine("(empty)");
  }
}
実行結果
Alice
(empty)