LINQのSelect拡張メソッドを使ってQueueに対してインデックス付きの列挙を行う 言語: C# VB 一方、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 関連するページ Queueにnullを格納する(値型の場合) Clearメソッドを使ってQueueの内容を空にする foreachでQueueの内容を列挙する 配列の内容をQueueの初期内容としてインスタンスを作成する ToArrayメソッドでQueueを配列に変換する・CopyToメソッドでQueueの内容を配列にコピーする LINQの拡張メソッドSkip・Takeを使ってQueueの一部分を配列に変換する