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

เมธอด Queue.Dequeue() ใน C# พร้อมตัวอย่าง


เมธอด Queue.Dequeue() ใน C# ใช้สำหรับลบและคืนค่า องค์ประกอบที่อยู่หน้าสุด (front) ของ Queue — ต่างจาก Peek() ที่ดูอย่างเดียวไม่ลบ

ไวยากรณ์ (Syntax)

public virtual object Dequeue ();

ตัวอย่างที่ 1: Dequeue แบบ Generic Queue<string>

using System;
using System.Collections.Generic;

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

        Console.WriteLine("Count of elements = " + queue.Count);
        Console.WriteLine("Element at the beginning of queue = " + queue.Peek());

        queue.Dequeue();  // ลบ A
        queue.Dequeue();  // ลบ B
        queue.Dequeue();  // ลบ C

        Console.WriteLine("Count of elements = " + queue.Count);
    }
}

ผลลัพธ์

Count of elements = 7
Element at the beginning of queue = A
Count of elements = 4

ตัวอย่างที่ 2: Dequeue หลายครั้ง พร้อม Clear

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Queue queue = new Queue();
        queue.Enqueue("Gary");
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");
        queue.Enqueue("Mark");
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");

        Console.Write("Count of elements = ");
        Console.WriteLine(queue.Count);

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

        queue.Dequeue();  // ลบ Gary
        queue.Dequeue();  // ลบ Jack

        Console.WriteLine("\nQueue...UPDATED");
        foreach (string i in queue)
        {
            Console.WriteLine(i);
        }

        Console.Write("Count of elements (updated) = " + queue.Count);

        queue.Clear();
        Console.Write("\nCount of elements (updated AGAIN) = ");
        Console.WriteLine(queue.Count);
    }
}

ผลลัพธ์

Count of elements = 8
Queue...
Gary
Jack
Ryan
Kevin
Mark
Jack
Ryan
Kevin

Queue...UPDATED
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements (updated) = 6
Count of elements (updated AGAIN) = 0

ข้อสังเกตสำคัญ

  • Dequeue() ลบองค์ประกอบหน้าสุดออกและคืนค่ามัน — Queue เปลี่ยนแปลงไปถาวร
  • หาก Queue ว่าง (Count == 0) การเรียก Dequeue() จะโยน InvalidOperationException
  • ควรตรวจสอบ Count > 0 ก่อน Dequeue() เสมอ
  • Queue เป็น FIFO (First In, First Out) — Enqueue ก่อน = Dequeue ก่อน
  • เวอร์ชัน Generic Queue<T>.Dequeue() คืนค่าแบบ T โดยตรง
  • ใช้ Clear() เพื่อล้างทั้งคิวทีเดียว