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