কম্পিউটার টিউটোরিয়াল

C#-এ HashSet-এ পুনরাবৃত্তি করার জন্য এনিউমারেটর পান

C#-এ HashSet<T> একটি অর্ডারহীন কালেকশন যা ডুপ্লিকেট মান অনুমতি দেয় না। এর মাধ্যমে দ্রুত লুকআপ, যোগ এবং অপসারণ করা যায়। GetEnumerator() মেথড ব্যবহার করে আপনি একটি এনিউমারেটর পেতে পারেন যা সেটের মধ্য দিয়ে পুনরাবৃত্তি করে।

উদাহরণ ১: স্ট্রিং HashSet-এ এনিউমারেটর ব্যবহার

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(String[] args) {
        HashSet set1 = new HashSet();
        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 set2 = new HashSet();
        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.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-এ উপাদানসমূহ... (এনিউমারেটর দিয়ে পুনরাবৃত্তি)
John
Jacob
Ryan
Tom
Andy
Tim
Steve
Mark
HashSet1 HashSet2-এর সমান? = False
HashSet2-এর কাউন্ট = 8
HashSet2-এর কাউন্ট (আপডেটেড) = 0

উদাহরণ ২: ডুপ্লিকেট হ্যান্ডলিং এবং সুপারসেট যাচাই

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        HashSet set1 = new HashSet();
        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 set2 = new HashSet();
        set2.Add("EF");
        set2.Add("KL");
        
        Console.WriteLine("HashSet2-এ উপাদানসমূহ... (এনিউমারেটর দিয়ে পুনরাবৃত্তি)");
        HashSet.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-এ উপাদানসমূহ... (এনিউমারেটর দিয়ে পুনরাবৃত্তি)
EF
KL
set1 কি set2-এর সুপারসেট? True

মূল পয়েন্ট: HashSet ডুপ্লিকেট মান স্বয়ংক্রিয়ভাবে বাদ দেয়। GetEnumerator() দিয়ে আপনি ম্যানুয়ালি পুনরাবৃত্তি করতে পারেন, তবে foreach ব্যবহার করাই সহজ এবং পঠনযোগ্য।

  1. C#-এ HashSet সুপারসেট (Superset) কিনা যাচাই করা IsSupersetOf() দিয়ে

  2. C#-এ List-এ ইনুমেরেটর পাওয়া (GetEnumerator)

  3. C#-এ Dictionary-এর মাধ্যমে পুনরাবৃত্তি করার জন্য এনুমারেটর পান

  4. C#-এ StringCollection-এর মাধ্যমে পুনরাবৃত্তি করার জন্য এনুমারেটর পান