C#-এ StringDictionary ক্লাসের Equals(object obj) মেথড ব্যবহার করে দুটি অবজেক্ট সমান কিনা চেক করা যায়। গুরুত্বপূর্ণ: এটি রেফারেন্স সমতা (reference equality) চেক করে, কন্টেন্ট সমতা (content equality) নয়। দুটি ভিন্ন ইনস্ট্যান্স একই কী-ভ্যালু থাকলেও false রিটার্ন করবে।
উদাহরণ ১: একই কন্টেন্ট কিন্তু ভিন্ন ইনস্ট্যান্স, এবং সেম রেফারেন্স
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("A", "John");
strDict1.Add("B", "Andy");
strDict1.Add("C", "Tim");
strDict1.Add("D", "Ryan");
strDict1.Add("E", "Kevin");
strDict1.Add("F", "Katie");
strDict1.Add("G", "Brad");
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
// strDict3 = strDict2 (সেম রেফারেন্স)
StringDictionary strDict3 = new StringDictionary();
strDict3 = strDict2;
Console.WriteLine("Dictionary2 কি Dictionary3-এর সমান? = " + strDict2.Equals(strDict3));
Console.WriteLine("Dictionary1 কি Dictionary3-এর সমান? = " + strDict1.Equals(strDict3));
}
}
আউটপুট
Dictionary2 কি Dictionary3-এর সমান? = True Dictionary1 কি Dictionary3-এর সমান? = False
উদাহরণ ২: ইটারেশন এবং সমতা চেক
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("A", "John");
strDict1.Add("B", "Andy");
strDict1.Add("C", "Tim");
strDict1.Add("D", "Ryan");
strDict1.Add("E", "Kevin");
strDict1.Add("F", "Katie");
strDict1.Add("G", "Brad");
Console.WriteLine("StringDictionary1 উপাদান...");
foreach (DictionaryEntry d in strDict1) {
Console.WriteLine(d.Key + " " + d.Value);
}
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
Console.WriteLine("\nStringDictionary2 উপাদান...");
foreach (DictionaryEntry d in strDict2) {
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nDictionary2 কি Dictionary1-এর সমান? = " + strDict2.Equals(strDict1));
}
}
আউটপুট
StringDictionary1 উপাদান... a John b Andy c Tim d Ryan e Kevin f Katie g Brad StringDictionary2 উপাদান... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Dictionary2 কি Dictionary1-এর সমান? = False
ব্যাখ্যা: StringDictionary.Equals ডিফল্ট অবজেক্ট রেফারেন্স সমতা চেক করে। কন্টেন্ট সমতা চেক করতে হলে ম্যানুয়ালি সব কী-ভ্যালু তুলনা করতে হবে বা LINQ-এর SequenceEqual (অর্ডার্ড কালেকশনের জন্য) বা সেট কম্পারিশন ব্যবহার করতে হবে। StringDictionary কেস-ইনসেনসিটিভ কী স্টোর করে (ইন্টারন্যালি लोয়ারকেস)। লিগ্যাসি ক্লাস; নতুন প্রজেক্টে Dictionary<string, string> ব্যবহার করুন।