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

C#で別のコレクションからキュー(Queue)を作成する方法

C#では、Queue<T> クラスのコンストラクタに IEnumerable<T> 型のコレクションを渡すことで、既存のコレクションを元に新しいキューを簡単に作成できます。
この記事では、ToArray() メソッドでキューを配列に変換し、その配列から新しいキューを生成する具体例を紹介します。

例1:文字列型のキューから新しいキューを作成する

まず、string 型のキューを作成し、それを元にもう一つのキューを生成してみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      Queue<string> queue = new Queue<string>();
      queue.Enqueue("One");
      queue.Enqueue("Two");
      queue.Enqueue("Three");

      Console.WriteLine("Queue elements...");
      foreach(string str in queue) {
         Console.WriteLine(str);
      }

      Console.WriteLine("\nArray elements...");
      // 元のキューを配列に変換し、そこから新しいキューを作成
      Queue<string> arr = new Queue<string>(queue.ToArray());
      foreach(string str in arr) {
         Console.WriteLine(str);
      }
   }
}

出力結果

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

Queue elements...
One
Two
Three

Array elements...
One
Two
Three

例2:数値型のキューから新しいキューを作成する

続いて、int 型のキューに対して同じ操作を行う例です。複数の要素を持つキューでも、同様の手順で新しいキューを作成できます。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      Queue<int> queue = new Queue<int>();
      queue.Enqueue(100);
      queue.Enqueue(200);
      queue.Enqueue(300);
      queue.Enqueue(400);
      queue.Enqueue(500);
      queue.Enqueue(600);
      queue.Enqueue(700);
      queue.Enqueue(800);
      queue.Enqueue(900);
      queue.Enqueue(1000);

      Console.WriteLine("Queue elements...");
      foreach(int val in queue) {
         Console.WriteLine(val);
      }

      Console.WriteLine("\nArray elements...");
      // 配列から新しいキューを作成
      Queue<int> arr = new Queue<int>(queue.ToArray());
      foreach(int val in arr) {
         Console.WriteLine(val);
      }
   }
}

出力結果

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

Queue elements...
100
200
300
400
500
600
700
800
900
1000
Array elements...
100
200
300
400
500
600
700
800
900
1000

ポイントまとめ

  • new Queue<T>(collection) のように、コンストラクタに IEnumerable<T> を渡すことで、既存のコレクションからキューを初期化できます。
  • ToArray() メソッドを使うと、キューの要素を配列として取得できるため、そのまま新しいキューの生成元として利用できます。
  • 作成された新しいキューは、元のキューと同じ順序で要素を保持します。
  1. C#でListコレクションから要素を取得する方法

    C#では、List<T>コレクションに格納した要素へ、インデックスを指定するだけで簡単にアクセスできます。本記事では、Listから要素を取得する基本的な方法を、具体的なコード例とともに解説します。 Listへの要素の追加 まず、List<int>型のコレクションを作成し、Addメソッドを使って整数の要素を追加します。 List<int> list = new List<int>(); list.Add(20); list.Add(40); list.Add(60); list.Add(80); インデックスによる要素の取得 リストから特定の

  2. Pythonで別の辞書の値から新しい辞書を作成・マージする3つの方法

    Pythonである辞書の値をもとに新しい辞書を作成したい場合は、既存の辞書同士をマージ(統合)するのが基本的なアプローチです。ここでは、Pythonのバージョン別に代表的な3つの方法を紹介します。方法1:**演算子でアンパックして結合(Python 3.5以降)Python 3.5以降では、**演算子を使って辞書を展開(アンパック)し、複数の辞書を簡潔に1つにまとめることができます。構文例a = {foo: 125} b = {bar: hello} c = {**a, **b} print(c)出力結果{foo: 125, bar: hello}この記法は古いバージョンのPythonではサポ