Để xóa tất cả các phần tử khỏi Queue<T> trong C#, bạn sử dụng phương thức Clear(). Phương thức này loại bỏ tất cả các đối tượng khỏi hàng đợi và đặt Count về 0.
Ví dụ 1: Xóa tất cả phần tử khỏi 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("Số lượng phần tử = ");
Console.WriteLine(queue.Count);
// Xóa tất cả phần tử
queue.Clear();
Console.Write("Số lượng phần tử (đã cập nhật) = ");
Console.WriteLine(queue.Count);
}
}
Kết quả
Số lượng phần tử = 8 Số lượng phần tử (đã cập nhật) = 0
Ví dụ 2: Queue với ít phần tử hơn
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("Số lượng phần tử = " + queue.Count);
queue.Clear();
Console.Write("Số lượng phần tử (đã cập nhật) = " + queue.Count);
}
}
Kết quả
Số lượng phần tử = 5 Số lượng phần tử (đã cập nhật) = 0
Các phương thức liên quan của Queue<T>
| Phương thức | Mô tả |
|---|---|
Enqueue(T item) |
Thêm phần tử vào cuối hàng đợi |
Dequeue() |
Loại bỏ và trả về phần tử ở đầu hàng đợi |
Peek() |
Trả về phần tử ở đầu mà không loại bỏ |
Clear() |
Xóa tất cả phần tử |
Contains(T item) |
Kiểm tra phần tử có tồn tại |
ToArray() |
Sao chép sang mảng mới |
Ví dụ đầy đủ: Các thao tác cơ bản
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Queue<string> queue = new Queue<string>();
// Thêm phần tử
queue.Enqueue("First");
queue.Enqueue("Second");
queue.Enqueue("Third");
Console.WriteLine("Queue ban đầu: " + string.Join(", ", queue));
Console.WriteLine("Count: " + queue.Count);
// Xem phần tử đầu (không xóa)
Console.WriteLine("Peek: " + queue.Peek());
// Lấy và xóa phần tử đầu
Console.WriteLine("Dequeue: " + queue.Dequeue());
Console.WriteLine("Sau Dequeue: " + string.Join(", ", queue));
// Kiểm tra tồn tại
Console.WriteLine("Contains 'Second': " + queue.Contains("Second"));
// Xóa tất cả
queue.Clear();
Console.WriteLine("Sau Clear - Count: " + queue.Count);
}
}
Lưu ý quan trọng
Clear()chạy trong O(n) thời gian- Sau khi
Clear(),Count= 0 nhưngCapacitykhông thay đổi Queue<T>là generic type-safe, khuyến nghị dùng thay vìQueuenon-generic- Tuân theo nguyên tắc FIFO (First In, First Out)
- Ném
InvalidOperationExceptionnếuDequeue()hoặcPeek()trên queue rỗng
Queue non-generic (cũ)
using System.Collections;
Queue queue = new Queue();
queue.Enqueue("Item");
queue.Clear(); // Tương tự