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

Queue ใน C# พร้อมตัวอย่างการใช้งาน

ภาพรวม

คลาส Queue<T> ใน C# เป็นคอลเลกชันแบบ First-In-First-Out (FIFO) ใช้สำหรับจัดเก็บวัตถุที่ต้องการประมวลผลตามลำดับที่เพิ่มเข้าไป

เมธอดและคุณสมบัติหลัก

ลำดับ เมธอด / คุณสมบัติ คำอธิบาย
1Clear()ลบวัตถุทั้งหมดออกจาก Queue
2Contains(T)ตรวจสอบว่ามีองค์ประกอบอยู่ใน Queue หรือไม่
3CopyTo(T[], Int32)คัดลอกองค์ประกอบไปยังอาร์เรย์ที่มีอยู่แล้ว
4Dequeue()นำออกและคืนค่าออบเจ็กต์ที่อยู่หน้าสุดของ Queue
5Enqueue(T)เพิ่มออบเจ็กต์เข้าไปที่ท้ายของ Queue
6Peek()คืนค่าออบเจ็กต์ที่อยู่หน้าสุดโดยไม่ลบออก
7Countจำนวนองค์ประกอบใน Queue

ตัวอย่างที่ 1: ดูค่าที่หน้าสุดของ Queue โดยไม่ลบ (Peek)

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Queue<string> queue = new Queue<string>();
        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());
    }
}

ผลลัพธ์

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

ตัวอย่างที่ 2: ลบสมาชิกทั้งหมดด้วย Clear()

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Queue<string> queue = new Queue<string>();
        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);

        queue.Clear();

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

ผลลัพธ์

Count of elements = 8
Count of elements (updated) = 0

สรุป

  • Queue เหมาะสำหรับสถานการณ์ที่ต้องการประมวลผลตามลำดับ เช่น การจัดการงาน (task scheduling)
  • ใช้ Enqueue เพื่อเพิ่ม Dequeue เพื่อนำออก และ Peek เพื่อดูค่าโดยไม่ลบ
  • Clear() ล้างข้อมูลทั้งหมดทันที