परिचय
C# में Queue.GetEnumerator() मेथड एक एन्यूमरेटर (enumerator) वापस करता है जो Queue संग्रह के माध्यम से पुनरावृति (iterate) करता है। यह IEnumerator इंटरफेस इम्प्लीमेंट करता है।
सिंटैक्स
public virtual System.Collections.IEnumerator GetEnumerator();
उदाहरण 1: दो क्यूज की तुलना
using System;
using System.Collections;
public class Demo {
public static void Main() {
Queue queue = new Queue();
queue.Enqueue(100);
queue.Enqueue(200);
queue.Enqueue(300);
queue.Enqueue(400);
Console.WriteLine("Queue1...");
IEnumerator demoEnum = queue.GetEnumerator();
while (demoEnum.MoveNext()) {
Console.WriteLine(demoEnum.Current);
}
Queue queue2 = new Queue();
queue2.Enqueue(100);
queue2.Enqueue(150);
queue2.Enqueue(300);
queue2.Enqueue(400);
Console.WriteLine("\nQueue2...");
demoEnum = queue2.GetEnumerator();
while (demoEnum.MoveNext()) {
Console.WriteLine(demoEnum.Current);
}
Console.WriteLine(queue.Equals(queue2));
}
}
आउटपुट
Queue1... 100 200 300 400 Queue2... 100 150 300 400 False
उदाहरण 2: बड़ा क्यू
using System;
using System.Collections;
public class Demo {
public static void Main() {
Queue queue = new Queue();
queue.Enqueue(100);
queue.Enqueue(200);
queue.Enqueue(300);
queue.Enqueue(400);
queue.Enqueue(500);
queue.Enqueue(600);
queue.Enqueue(700);
queue.Enqueue(800);
queue.Enqueue(900);
queue.Enqueue(1000);
Console.WriteLine("Queue...");
IEnumerator demoEnum = queue.GetEnumerator();
while (demoEnum.MoveNext()) {
Console.WriteLine(demoEnum.Current);
}
}
}
आउटपुट
Queue... 100 200 300 400 500 600 700 800 900 1000
मुख्य बिंदु
GetEnumerator()FIFO क्रम में पुनरावृति करता है (पहले डाला गया पहले निकाला जाता है)।- वापस किया गया एन्यूमरेटर
IEnumeratorइम्प्लीमेंट करता है जिसमेंMoveNext(),Current,Reset()होते हैं। foreachलूप आंतरिक रूप से इसी मेथड का उपयोग करता है।- जेनेरिक
Queue<T>के लिएIEnumerable<T>वापस करता है। - पुनरावृति के दौरान संग्रह संशोधित करने से
InvalidOperationExceptionफेंका जाता है।