LINQの拡張メソッドSkip・Takeを使ってQueueの一部分を配列に変換する 言語: C# VB Queueの一部分のみを配列として取得するメソッドは用意されていません。 そのため、全部を配列に変換した後必要な部分だけを抜き出して使うか、次のようにLINQの拡張メソッドSkipおよびTakeを組み合わせて一部分のみを取得します。 LINQの拡張メソッドSkip・Takeを使って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"); q.Enqueue("Dave"); q.Enqueue("Eve"); // Queueの1番目から3つ分を配列に変換 // (Queueから要素1つ分をSkip、そこから要素3つをTake、その結果をToArray) var arr = q.Skip(1).Take(3).ToArray(); for (var i = 0; i < arr.Length; i++) { Console.WriteLine("arr[{0}] => {1}", i, arr[i]); } } } 実行結果 arr[0] => Bob arr[1] => Charlie arr[2] => Dave 関連するページ LINQのSelect拡張メソッドを使ってQueueに対してインデックス付きの列挙を行う 配列の内容をQueueの初期内容としてインスタンスを作成する ToArrayメソッドでQueueを配列に変換する・CopyToメソッドでQueueの内容を配列にコピーする