C# में Queue.Dequeue() मेथड कतार (Queue) के शुरुआत में स्थित ऑब्जेक्ट को हटाता है और उसे लौटाता है। यह FIFO (First-In-First-Out) सिद्धांत का पालन करता है।
सिंटैक्स
public virtual object Dequeue ();
उदाहरण 1: बेसिक Dequeue ऑपरेशन
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());
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 के साथ कतार प्रोसेसिंग
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);
Console.WriteLine("Queue...");
foreach(string i in queue) {
Console.WriteLine(i);
}
queue.Dequeue(); // Gary हटाता है
queue.Dequeue(); // Jack हटाता है
Console.WriteLine("Queue...UPDATED");
foreach(string i in queue) {
Console.WriteLine(i);
}
Console.Write("Count of elements (updated) = " + queue.Count);
queue.Clear();
Console.Write("\nCount of elements (after Clear) = ");
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 (after Clear) = 0
Dequeue vs Peek तुलना
| मेथड | विवरण |
|---|---|
Dequeue() | शुरुआत का एलिमेंट हटाकर लौटाता है |
Peek() | शुरुआत का एलिमेंट केवल देखता है, हटाता नहीं |
सावधानियां
- खाली कतार पर
Dequeue()कॉल करने सेInvalidOperationExceptionफेंका जाता है। - हमेशा
if (queue.Count > 0)जांचें। - जेनेरिक
Queue<T>टाइप-सेफ Dequeue प्रदान करता है।
सामान्य उपयोग पैटर्न
// सभी एलिमेंट्स प्रोसेस करें
while (queue.Count > 0) {
var item = queue.Dequeue();
Process(item);
}
// या TryDequeue पैटर्न (ConcurrentQueue के लिए)
if (queue.TryDequeue(out var item)) {
Process(item);
}