C#-এ OrderedDictionary ক্লাসের Equals(object obj) মেথড ব্যবহার করে দুটি অবজেক্ট সমান কিনা চেক করা যায়। SortedList-এর মতোই, এটি রেফারেন্স সমতা (reference equality) চেক করে, কন্টেন্ট সমতা নয়। একই কন্টেন্ট থাকলেও ভিন্ন ইনস্ট্যান্স হলে false রিটার্ন করবে।
উদাহরণ ১: ভিন্ন কন্টেন্টের 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 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);
}
// dict3 = dict2 (সেম রেফারেন্স)
OrderedDictionary dict3 = new OrderedDictionary();
dict3 = dict2;
Console.WriteLine("\nOrderedDictionary3 কি OrderedDictionary2-এর সমান? = " + (dict3.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 OrderedDictionary3 কি OrderedDictionary2-এর সমান? = True
ব্যাখ্যা: OrderedDictionary.Equals(obj) ডিফল্ট অবজেক্ট রেফারেন্স সমতা চেক করে। কন্টেন্ট সমতা চেক করতে হলে ম্যানুয়ালি প্রতিটি কী-ভ্যালু জোড়া তুলনা করতে হবে। OrderedDictionary লিগ্যাসি নন-জেনেরিক ক্লাস; নতুন কোডে Dictionary<TKey, TValue> বা SortedDictionary<TKey, TValue> ব্যবহার করা ভালো, যদিও সেগুলো ইনসারশন অর্ডার বজায় রাখে না (সেটা চাইলে List<KeyValuePair<TKey, TValue>> ব্যবহার করুন)।