C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のQueue.ToArrayメソッドとは?使い方とサンプルコードを解説

C#のQueue.ToArray()メソッドは、Queue(キュー)に格納されているすべての要素を、新しい配列へコピーするためのメソッドです。キューの中身をそのまま配列として扱いたい場面で非常に便利です。

構文

非ジェネリック版のQueueクラスの場合、構文は以下のとおりです。

public virtual object[] ToArray();

一方、ジェネリック版のQueue<T>では、戻り値がT[]型になるため、次のように定義されています。

public T[] ToArray();

押さえておきたいポイント

  • 要素はキューの先頭(最初にEnqueueされた要素)から順番に配列へコピーされます。
  • 元のQueue自体は変更されず、まったく新しい配列が返されます。

サンプルコード①:int型のQueueを配列に変換する

まずは、整数値を格納したQueueをToArray()メソッドで配列に変換する例を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      Queue<int> queue = new Queue<int>();
      queue.Enqueue(1);
      queue.Enqueue(2);
      queue.Enqueue(3);
      queue.Enqueue(4);
      queue.Enqueue(5);

      Console.WriteLine("Queueの要素...");
      foreach(int i in queue){
         Console.WriteLine(i);
      }

      int[] intArr = queue.ToArray();
      Console.WriteLine("Queueから配列へ変換...");
      foreach(int i in intArr){
         Console.WriteLine(i);
      }
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

Queueの要素...
1
2
3
4
5
Queueから配列へ変換...
1
2
3
4
5

このように、Queueの要素がそのまま順序を保った状態でint型の配列へコピーされていることが確認できます。

サンプルコード②:string型のQueueを配列に変換する

続いて、文字列を格納したQueueを配列に変換する例を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      Queue<string> queue = new Queue<string>();
      queue.Enqueue("A");
      queue.Enqueue("B");
      queue.Enqueue("C");
      queue.Enqueue("D");
      queue.Enqueue("E");
      queue.Enqueue("F");

      Console.WriteLine("Queueの要素...");
      foreach(string i in queue){
         Console.WriteLine(i);
      }

      string[] strArr = queue.ToArray();
      Console.WriteLine("Queueから配列へ変換...");
      foreach(string i in strArr){
         Console.WriteLine(i);
      }
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

Queueの要素...
A
B
C
D
E
F
Queueから配列へ変換...
A
B
C
D
E
F

まとめ

Queue.ToArray()メソッドを使えば、キューに格納された要素を簡単に配列へ変換できます。要素の順序は保持され、元のQueueには一切影響を与えないため、安全にデータを複製したいときに活用できます。数値でも文字列でも同じように使えるので、ぜひ実際のコーディングで試してみてください。

  1. C#のQueueクラスを使ったEnqueueとDequeueの基本操作

    Queueコレクションクラスは、C#のSystem.Collections名前空間に含まれるデータ構造の一つです。このクラスでは、要素がFIFO(First In First Out:先入れ先出し)方式で格納されます。つまり、最初に追加された要素が最初に取り出される仕組みで、映画館のチケット売り場前に並ぶ人の行列と同じイメージです。 Queueクラスには、主に次の2つのメソッドが用意されています。 Enqueue() … キューに値を追加するメソッド Dequeue() … キューから値を取り出すメソッド Enqueue:キューへの要素の追加 Enqueueメソッドを使用すると、キューの

  2. C#のQueue(キュー)クラスとは?FIFOの基本とEnqueue・Dequeueの使い方

    C#のキュー(Queue)とは キュー(Queue)は、オブジェクトを「先入れ先出し(FIFO:First-In, First-Out)」で管理するコレクションです。最初に追加した要素が最初に取り出されるという特性を持つため、タスクの順番待ちや処理の履歴管理など、追加された順序どおりに要素へアクセスしたい場面で活用されます。 要素をキューに追加することを「エンキュー(Enqueue)」、キューから要素を取り出すことを「デキュー(Dequeue)」と呼びます。 要素の追加:Enqueueメソッド キューに要素を追加するには、Enqueueメソッドを使用します。 Queue q = new Qu