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
| দিক | IDictionaryEnumerator | foreach |
|---|---|---|
| সিনট্যাক্স | বর্বোস, ম্যানুয়াল MoveNext() | স্মার্ট, সংক্ষিপ্ত |
| টাইপ সেফটি | নন-জেনেরিক (বক্সিং) | নন-জেনেরিক (বক্সিং) |
| পারফরম্যান্স | সামান্য | সামান্য (একই এনুমারেটর ব্যবহার) |
| ফ্লেক্সিবিলিটি | রিসেট করা যায় (Reset()) | রিসেট করা যায় না |
সুপারিশ: সাধারণ ব্যবহারের জন্য foreach ব্যবহার করুন। স্পেশাল কেসে (যেমন ম্যানুয়াল কন্ট্রোল, রিসেট দরকার) এনুমারেটর ব্যবহার করুন।