C# में Queue.Peek() मेथड कतार (Queue) के शुरुआत में स्थित ऑब्जेक्ट को बिना हटाए लौटाता है। यह मेथड तब उपयोगी होता है जब आप अगले एलिमेंट को देखना चाहते हैं लेकिन उसे कतार से निकालना नहीं चाहते।
सिंटैक्स
public virtual object Peek ();
उदाहरण 1: नॉन-जेनेरिक कतार के साथ Peek का उपयोग
using System;
using System.Collections;
public class Demo {
public static void Main() {
Queue queue = new Queue();
queue.Enqueue("AB");
queue.Enqueue("BC");
queue.Enqueue("CD");
queue.Enqueue("DE");
queue.Enqueue("EF");
queue.Enqueue("FG");
queue.Enqueue("GH");
queue.Enqueue("HI");
Console.WriteLine("Queue...");
IEnumerator demoEnum = queue.GetEnumerator();
while (demoEnum.MoveNext()) {
Console.WriteLine(demoEnum.Current);
}
Console.WriteLine("Queue element at the beginning = " + queue.Peek());
Console.WriteLine("Is Queue synchronized? = " + queue.IsSynchronized);
// सिंक्रोनाइज्ड कतार बनाएं
Queue queue2 = Queue.Synchronized(queue);
Console.WriteLine("Is Queue synchronized now? = " + queue2.IsSynchronized);
}
}
आउटपुट
Queue... AB BC CD DE EF FG GH HI Queue element at the beginning = AB Is Queue synchronized? = False Is Queue synchronized now? = True
उदाहरण 2: जेनेरिक Queue<string> के साथ Peek का उपयोग
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 element at the beginning = " + queue.Peek());
Console.WriteLine("Does the queue have element Jack? = " + queue.Contains("Jack"));
queue.Clear();
Console.Write("Count of elements (updated) = ");
Console.WriteLine(queue.Count);
}
}
आउटपुट
Count of elements = 8 Queue element at the beginning = Gary Does the queue have element Jack? = True Count of elements (updated) = 0
मुख्य अंतर: Peek vs Dequeue
| मेथड | विवरण |
|---|---|
Peek() | शुरुआत का एलिमेंट लौटाता है, कतार से हटाता नहीं |
Dequeue() | शुरुआत का एलिमेंट लौटाता है और कतार से हटा देता है |
सावधानियां
- यदि कतार खाली है तो
Peek()InvalidOperationExceptionफेंकता है। - हमेशा
Peek()कॉल करने से पहलेCount > 0जांचें।