เมธอด Clear() ของ Queue<T> ใช้ลบองค์ประกอบทั้งหมดออกจากคิว ทำให้ Count กลายเป็น 0
ตัวอย่างที่ 1: Queue<string> พื้นฐาน
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("จำนวนองค์ประกอบ = ");
Console.WriteLine(queue.Count); // 8
// ลบทั้งหมด
queue.Clear();
Console.Write("จำนวนองค์ประกอบ (อัปเดต) = ");
Console.WriteLine(queue.Count); // 0
}
}
ผลลัพธ์
จำนวนองค์ประกอบ = 8 จำนวนองค์ประกอบ (อัปเดต) = 0
ตัวอย่างที่ 2: Queue อื่นพร้อมแสดงก่อน/หลัง
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");
Console.WriteLine("จำนวนองค์ประกอบ = " + queue.Count); // 5
queue.Clear();
Console.Write("จำนวนองค์ประกอบ (อัปเดต) = " + queue.Count); // 0
}
}
ผลลัพธ์
จำนวนองค์ประกอบ = 5 จำนวนองค์ประกอบ (อัปเดต) = 0
เมธอดสำคัญของ Queue<T> สรุป
| เมธอด | คำอธิบาย |
|---|---|
Enqueue(T) | เพิ่มองค์ประกอบที่ท้ายคิว |
Dequeue() | นำออกและคืนค่าองค์ประกอบหน้าคิว (โยน Exception ถ้าว่าง) |
Peek() | ดูองค์ประกอบหน้าคิวโดยไม่เอาออก (โยน Exception ถ้าว่าง) |
Clear() | ลบองค์ประกอบทั้งหมด |
Contains(T) | ตรวจสอบว่ามีองค์ประกอบนี้ในคิวหรือไม่ |
Count | จำนวนองค์ประกอบในคิว |
ข้อสังเกต
Clear()เป็น O(n) ต้องเดินทุกโหนดเพื่อลบ reference (ช่วย Garbage Collector)- หลัง
Clear()คิวยังใช้งานได้ปกติ สามารถEnqueueใหม่ได้เลย - คิวเป็น FIFO (First-In-First-Out) - เข้าหน้า ออกหลัง
- มี
ConcurrentQueue<T>สำหรับ Multi-threading ในSystem.Collections.Concurrent