C#-এ OrderedDictionary ক্লাস একটি কী-মান জোড়ার কালেকশন যা ইনসারশন অর্ডার বজায় রাখে। Add(key, value) মেথড ব্যবহার করে নতুন এন্ট্রি যোগ করা যায়। সাধারণ ডিকশনারির থেকে ভিন্ন, এটি ইন্ডেক্স বেসড অ্যাক্সেস ও সাপোর্ট করে।
উদাহরণ ১: দুটি OrderedDictionary তৈরি এবং তুলনা
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
OrderedDictionary dict1 = new OrderedDictionary();
dict1.Add("A", "Books");
dict1.Add("B", "Electronics");
dict1.Add("C", "Smart Wearables");
dict1.Add("D", "Pet Supplies");
dict1.Add("E", "Clothing");
dict1.Add("F", "Footwear");
Console.WriteLine("OrderedDictionary1 উপাদান...");
foreach (DictionaryEntry d in dict1) {
Console.WriteLine(d.Key + " " + d.Value);
}
OrderedDictionary dict2 = new OrderedDictionary();
dict2.Add("1", "One");
dict2.Add("2", "Two");
dict2.Add("3", "Three");
dict2.Add("4", "Four");
dict2.Add("5", "Five");
dict2.Add("6", "Six");
Console.WriteLine("\nOrderedDictionary2 উপাদান...");
foreach (DictionaryEntry d in dict2) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nOrderedDictionary1 কি OrderedDictionary2-এর সমান? = " + (dict1.Equals(dict2)));
}
}
আউটপুট
OrderedDictionary1 উপাদান... A Books B Electronics C Smart Wearables D Pet Supplies E Clothing F Footwear OrderedDictionary2 উপাদান... 1 One 2 Two 3 Three 4 Four 5 Five 6 Six OrderedDictionary1 কি OrderedDictionary2-এর সমান? = False
উদাহরণ ২: মানগুলোর কলেকশন পাওয়া এবং প্রোপার্টি চেক
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
OrderedDictionary dict = new OrderedDictionary();
dict.Add("1", "One");
dict.Add("2", "Two");
dict.Add("3", "Three");
dict.Add("4", "Four");
dict.Add("5", "Five");
dict.Add("6", "Six");
dict.Add("7", "Seven");
dict.Add("8", "Eight");
// Values কলেকশন পাওয়া
ICollection col = dict.Values;
String[] strVal = new String[dict.Count];
col.CopyTo(strVal, 0);
Console.WriteLine("মানগুলো প্রদর্শন করা হচ্ছে...");
for (int i = 0; i < dict.Count; i++) {
Console.WriteLine(strVal[i]);
}
Console.WriteLine("OrderedDictionary কি রিড-অনলি? = " + dict.IsReadOnly);
Console.WriteLine("OrderedDictionary-তে কী '15' আছে? = " + dict.Contains("15"));
Console.WriteLine("OrderedDictionary-তে কী '5' আছে? = " + dict.Contains("5"));
}
}
আউটপুট
মানগুলো প্রদর্শন করা হচ্ছে... One Two Three Four Five Six Seven Eight OrderedDictionary কি রিড-অনলি? = False OrderedDictionary-তে কী '15' আছে? = False OrderedDictionary-তে কী '5' আছে? = True
ব্যাখ্যা: OrderedDictionary হ্যাশ টেবিল এবং অ্যারে লিস্টের কম্বিনেশন। এটি O(1) কী-বেসড লুকআপ এবং O(1) ইন্ডেক্স-বেসড অ্যাক্সেস দুটোই দেয়। Add মেথড কী ডুপ্লিকেট হলে এক্সেপশন থ্রো করে। IsReadOnly প্রোপার্টি কালেকশন মডিফাই করা যাবে কিনা তা বলে। নতুন প্রজেক্টে Dictionary<TKey, TValue> + লিস্ট বা SortedDictionary ব্যবহার করা ভালো হতে পারে।