C# में LinkedList<T> के तत्वों पर पुनरावृति करने वाला एन्यूमरेटर प्राप्त करने के लिए, हम GetEnumerator() मेथड का उपयोग करते हैं। यह एक संरचना एन्यूमरेटर (LinkedList<T>.Enumerator) लौटाता है जिसका उपयोग while लूप के साथ किया जा सकता है। LinkedList एक डबल-लिंक्ड सूची है जो System.Collections.Generic नेमस्पेस में स्थित है।
उदाहरण 1: LinkedList पर एन्यूमरेटर से पुनरावृति
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
LinkedList<string> list = new LinkedList<string>();
list.AddLast("A");
list.AddLast("B");
list.AddLast("C");
list.AddLast("D");
list.AddLast("E");
list.AddLast("F");
list.AddLast("G");
list.AddLast("H");
list.AddLast("I");
list.AddLast("J");
Console.WriteLine("नोड्स की संख्या = " + list.Count);
Console.WriteLine("LinkedList में तत्व... (एन्यूमरेटर LinkedList के माध्यम से पुनरावृति कर रहा है)");
LinkedList<string>.Enumerator demoEnum = list.GetEnumerator();
while (demoEnum.MoveNext())
{
string res = demoEnum.Current;
Console.WriteLine(res);
}
}
}
आउटपुट
नोड्स की संख्या = 10 LinkedList में तत्व... (एन्यूमरेटर LinkedList के माध्यम से पुनरावृति कर रहा है) A B C D E F G H I J
उदाहरण 2: दो LinkedList पर पुनरावृति और तुलना
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(String[] args)
{
LinkedList<string> list1 = new LinkedList<string>();
list1.AddLast("One");
list1.AddLast("Two");
list1.AddLast("Three");
list1.AddLast("Four");
list1.AddLast("Five");
Console.WriteLine("LinkedList1 में तत्व...");
foreach (string res in list1)
{
Console.WriteLine(res);
}
LinkedList<string> list2 = new LinkedList<string>();
list2.AddLast("India");
list2.AddLast("US");
list2.AddLast("UK");
list2.AddLast("Canada");
list2.AddLast("Poland");
list2.AddLast("Netherlands");
Console.WriteLine("LinkedList2 में तत्व... (एन्यूमरेटर LinkedList2 के माध्यम से पुनरावृति कर रहा है)");
LinkedList<string>.Enumerator demoEnum = list2.GetEnumerator();
while (demoEnum.MoveNext())
{
string res = demoEnum.Current;
Console.WriteLine(res);
}
LinkedList<string> list3 = new LinkedList<string>();
list3 = list2; // रेफरेंस असाइनमेंट
Console.WriteLine("क्या LinkedList3, LinkedList2 के बराबर है? = " + list3.Equals(list2));
}
}
आउटपुट
LinkedList1 में तत्व... One Two Three Four Five LinkedList2 में तत्व... (एन्यूमरेटर LinkedList2 के माध्यम से पुनरावृति कर रहा है) India US UK Canada Poland Netherlands क्या LinkedList3, LinkedList2 के बराबर है? = True
मुख्य बिंदु:
GetEnumerator()एक संरचना एन्यूमरेटर लौटाता है (क्लास नहीं - GC दबाव से बचने के लिए)MoveNext()अगले तत्व पर जाता है और सफलता दर्शाता हैCurrentवर्तमान तत्व लौटाता हैforeachलूप आंतरिक रूप से एन्यूमरेटर का उपयोग करता है (सरल सिंटैक्स)Equals()रेफरेंस समानता की जांच करता हैLinkedListदोनों सिरों पर O(1) इंसर्शन/डिलीशन प्रदान करता है