ภาพรวม
คอนสตรัคเตอร์ Queue<T>(IEnumerable<T> collection) ให้สร้าง Queue ใหม่โดยคัดลอกข้อมูลจากคอลเลกชันอื่น เช่น อาร์เรย์หรือ Queue อื่น
ตัวอย่างที่ 1: สร้าง Queue จากอาร์เรย์ของ Queue เดิม
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: สร้าง Queue จาก Queue ของจำนวนเต็ม
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
สรุป
- คอนสตรัคเตอร์รับ
IEnumerable<T>ใด ๆ ก็ได้ ไม่จำเป็นต้องเป็นอาร์เรย์ - ลำดับของสมาชิกใน Queue ใหม่จะเหมือนกับลำดับของ enumeration ของคอลเลกชันต้นทาง
- เป็นการ shallow copy สำหรับ reference type