一方、Queueではインデクサがサポートされないのでfor文による列挙はできません。 for文でインデックスを用いた列挙を行うためには、Queueを配列に変換してから列挙するか、LINQの拡張メソッドSelectを使って次のようにします。

LINQのSelect拡張メソッドを使ってQueueに対してインデックス付きの列挙を行う
using System;
using System.Collections.Generic;
using System.Linq;

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

    q.Enqueue("Alice");
    q.Enqueue("Bob");
    q.Enqueue("Charlie");

    // Selectメソッドを使ってQueueの要素をインデックス付きで列挙する
    foreach (var pair in q.Select((e, i) => new {Element = e, Index = i})) {
      Console.WriteLine($"{pair.Index} => {pair.Element}");
    }
  }
}
実行結果
0 => Alice
1 => Bob
2 => Charlie