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()メソッドを使うと、キューの要素を配列として取得できるため、そのまま新しいキューの生成元として利用できます。- 作成された新しいキューは、元のキューと同じ順序で要素を保持します。
-
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); インデックスによる要素の取得 リストから特定の
-
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ではサポ