Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การสร้าง Queue จากคอลเลกชันอื่นใน C#

ภาพรวม

คอนสตรัคเตอร์ 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