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

C#-তে HybridDictionary-এর মাধ্যমে পুনরাবৃত্তি করার জন্য Enumerator পেতে GetEnumerator() ব্যবহার

HybridDictionary ক্লাস (namespace: System.Collections.Specialized) এর GetEnumerator() মেথড একটি IDictionaryEnumerator রিটার্ন করে যা কী-ভ্যালু জোড়াগুলোর মাধ্যমে পুনরাবৃত্তি করতে দেয়। HybridDictionary ছোট আকারে ListDictionary এবং বড় আকারে Hashtable ব্যবহার করে।

উদাহরণ ১: দুটি HybridDictionary এবং ভিন্ন পদ্ধতিতে পুনরাবৃত্তি

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        HybridDictionary dict1 = new HybridDictionary();
        dict1.Add("A", "বই");
        dict1.Add("B", "ইলেকট্রনিক্স");
        dict1.Add("C", "স্মার্ট ওয়েয়ারেবল");
        dict1.Add("D", "পেট সাপ্লাই");
        dict1.Add("E", "পোশাক");
        dict1.Add("F", "ফুটওয়েয়ার");

        Console.WriteLine("HybridDictionary1 উপাদানসমূহ...");
        foreach (DictionaryEntry d in dict1) {
            Console.WriteLine(d.Key + " " + d.Value);
        }

        HybridDictionary dict2 = new HybridDictionary();
        dict2.Add("1", "এক");
        dict2.Add("2", "দুই");
        dict2.Add("3", "তিন");
        dict2.Add("4", "চার");
        dict2.Add("5", "পাঁচ");
        dict2.Add("6", "ছয়");

        Console.WriteLine("\nHybridDictionary2 কী-ভ্যালু জোড়া...");
        IDictionaryEnumerator demoEnum = dict2.GetEnumerator();
        while (demoEnum.MoveNext()) {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }
    }
}

আউটপুট

HybridDictionary1 উপাদানসমূহ...
A বই
B ইলেকট্রনিক্স
C স্মার্ট ওয়েয়ারেবল
D পেট সাপ্লাই
E পোশাক
F ফুটওয়েয়ার

HybridDictionary2 কী-ভ্যালু জোড়া...
Key = 1, Value = এক
Key = 2, Value = দুই
Key = 3, Value = তিন
Key = 4, Value = চার
Key = 5, Value = পাঁচ
Key = 6, Value = ছয়

উদাহরণ ২: একক HybridDictionary-র জন্য এনুমারেটর

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        HybridDictionary dict = new HybridDictionary();
        dict.Add("A", "গেরি");
        dict.Add("B", "এন্ডি");
        dict.Add("C", "মার্ক");
        dict.Add("D", "বেরি");
        dict.Add("E", "ক্যাটি");
        dict.Add("F", "জন");

        Console.WriteLine("HybridDictionary কী-ভ্যালু জোড়া...");
        IDictionaryEnumerator demoEnum = dict.GetEnumerator();
        while (demoEnum.MoveNext()) {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }
    }
}

আউটপুট

HybridDictionary কী-ভ্যালু জোড়া...
Key = A, Value = গেরি
Key = B, Value = এন্ডি
Key = C, Value = মার্ক
Key = D, Value = বেরি
Key = E, Value = ক্যাটি
Key = F, Value = জন

আধুনিক ও প্রেরফার্ড পদ্ধতি: foreach লুপ

// পদ্ধতি ১: DictionaryEntry (নন-জেনেরিক)
foreach (DictionaryEntry entry in dict) {
    Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
}

// পদ্ধতি ২: var ব্যবহার (ইমপ্লিসিট টাইপিং)
foreach (var entry in dict) {
    // entry টাইপ: DictionaryEntry
    Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}");
}

// পদ্ধতি ৩: Keys এবং Values আলাদা আলাদা
foreach (var key in dict.Keys) {
    Console.WriteLine($"Key: {key}, Value: {dict[key]}");
}

HybridDictionary-এর মূল বৈশিষ্ট্য

  • হাইব্রিড বাস্তবায়ন: ছোট ডেটা (≤ 9 উপাদান) এর জন্য ListDictionary (লিঙ্কড লিস্ট), বড় ডেটার জন্য Hashtable ব্যবহার করে।
  • অটোমেটিক স্যুইচ: ৯টি উপাদান 넘는 গেলে Hashtable-এ কনভার্ট হয়।
  • ক্রম: ইনসারশন অর্ডার সংরক্ষিত নয় (Hashtable মোডে)।
  • কেস-সেনসিটিভিটি: কনস্ট্রাক্টরে caseInsensitive প্যারামিটার দিয়ে নিয়ন্ত্রণ করা যায়।

তুলনা: Enumerator পদ্ধতি vs foreach

দিকIDictionaryEnumeratorforeach
সিনট্যাক্সবর্বোস, ম্যানুয়াল MoveNext()স্মার্ট, সংক্ষিপ্ত
টাইপ সেফটিনন-জেনেরিক (বক্সিং)নন-জেনেরিক (বক্সিং)
পারফরম্যান্সসামান্যসামান্য (একই এনুমারেটর ব্যবহার)
ফ্লেক্সিবিলিটিরিসেট করা যায় (Reset())রিসেট করা যায় না

সুপারিশ: সাধারণ ব্যবহারের জন্য foreach ব্যবহার করুন। স্পেশাল কেসে (যেমন ম্যানুয়াল কন্ট্রোল, রিসেট দরকার) এনুমারেটর ব্যবহার করুন।

  1. C#-তে SortedList-এর মাধ্যমে পুনরাবৃত্তি করার জন্য Enumerator পেতে GetEnumerator() ব্যবহার

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

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

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