C# में HashSet<T> संग्रह के तत्वों पर पुनरावृति करने के लिए, हम GetEnumerator() मेथड का उपयोग करके एक एन्यूमरेटर प्राप्त कर सकते हैं। HashSet अद्वितीय तत्वों का संग्रह है जो डुप्लिकेट मानों की अनुमति नहीं देता। यह System.Collections.Generic नेमस्पेस का हिस्सा है और सेट ऑपरेशंस के लिए अनुकूलित है।
उदाहरण 1: दो HashSet पर पुनरावृति
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(String[] args)
{
HashSet<string> set1 = new HashSet<string>();
set1.Add("A");
set1.Add("B");
set1.Add("C");
set1.Add("D");
set1.Add("E");
set1.Add("F");
set1.Add("G");
set1.Add("H");
Console.WriteLine("HashSet1 में तत्व...");
foreach (string res in set1)
{
Console.WriteLine(res);
}
HashSet<string> set2 = new HashSet<string>();
set2.Add("John");
set2.Add("Jacob");
set2.Add("Ryan");
set2.Add("Tom");
set2.Add("Andy");
set2.Add("Tim");
set2.Add("Steve");
set2.Add("Mark");
Console.WriteLine("HashSet2 में तत्व... (एन्यूमरेटर HashSet के माध्यम से पुनरावृति कर रहा है)");
HashSet<string>.Enumerator demoEnum = set2.GetEnumerator();
while (demoEnum.MoveNext())
{
string res = demoEnum.Current;
Console.WriteLine(res);
}
Console.WriteLine("क्या HashSet1, HashSet2 के बराबर है? = " + set1.Equals(set2));
Console.WriteLine("HashSet2 की संख्या = " + set2.Count);
set2.Clear();
Console.WriteLine("HashSet2 की संख्या (अपडेटेड) = " + set2.Count);
}
}
आउटपुट
HashSet1 में तत्व... A B C D E F G H HashSet2 में तत्व... (एन्यूमरेटर HashSet के माध्यम से पुनरावृति कर रहा है) John Jacob Ryan Tom Andy Tim Steve Mark क्या HashSet1, HashSet2 के बराबर है? = False HashSet2 की संख्या = 8 HashSet2 की संख्या (अपडेटेड) = 0
उदाहरण 2: डुप्लिकेट हैंडलिंग और सुपरसेट जांच
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
HashSet<string> set1 = new HashSet<string>();
set1.Add("AB");
set1.Add("CD");
set1.Add("EF");
set1.Add("AB"); // डुप्लिकेट - अनदेखा किया जाएगा
set1.Add("IJ");
set1.Add("KL");
set1.Add("EF"); // डुप्लिकेट - अनदेखा किया जाएगा
set1.Add("OP");
Console.WriteLine("HashSet1 में तत्व");
foreach (string val in set1)
{
Console.WriteLine(val);
}
HashSet<string> set2 = new HashSet<string>();
set2.Add("EF");
set2.Add("KL");
Console.WriteLine("HashSet2 में तत्व... (एन्यूमरेटर HashSet के माध्यम से पुनरावृति कर रहा है)");
HashSet<string>.Enumerator demoEnum = set2.GetEnumerator();
while (demoEnum.MoveNext())
{
string res = demoEnum.Current;
Console.WriteLine(res);
}
Console.WriteLine("क्या set1, set2 का सुपरसेट है? " + set1.IsSupersetOf(set2));
}
}
आउटपुट
HashSet1 में तत्व AB CD EF IJ KL OP HashSet2 में तत्व... (एन्यूमरेटर HashSet के माध्यम से पुनरावृति कर रहा है) EF KL क्या set1, set2 का सुपरसेट है? True
मुख्य बिंदु:
HashSetस्वचालित रूप से डुप्लिकेट मानों को संभालता है (उन्हें अनदेखा करता है)GetEnumerator()एक संरचना एन्यूमरेटर लौटाता है जिसेwhileलूप के साथ उपयोग किया जा सकता हैforeachलूप आंतरिक रूप से एन्यूमरेटर का उपयोग करता हैIsSupersetOfजांचता है कि क्या एक सेट में दूसरे सेट के सभी तत्व हैं