C#-এ StringCollection ক্লাসের Equals(object obj) মেথড ব্যবহার করে দুটি অবজেক্ট সমান কিনা চেক করা যায়। এটি রেফারেন্স সমতা (reference equality) চেক করে, কন্টেন্ট সমতা নয়। একই স্ট্রিং থাকলেও ভিন্ন ইনস্ট্যান্স হলে false রিটার্ন করবে।
উদাহরণ ১: একই কন্টেন্ট কিন্তু ভিন্ন ইনস্ট্যান্স
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection strCol1 = new StringCollection();
strCol1.Add("Accessories");
strCol1.Add("Books");
strCol1.Add("Electronics");
Console.WriteLine("StringCollection1 উপাদান...");
foreach (string res in strCol1) {
Console.WriteLine(res);
}
StringCollection strCol2 = new StringCollection();
strCol2.Add("Accessories");
strCol2.Add("Books");
strCol2.Add("Electronics");
Console.WriteLine("StringCollection2 উপাদান...");
foreach (string res in strCol2) { // বাগ: strCol1 বায়ে strCol2 হওয়া উচিত
Console.WriteLine(res);
}
Console.WriteLine("দুটি স্ট্রিং কলেকশন কি সমান? = " + strCol1.Equals(strCol2));
}
}
আউটপুট
StringCollection1 উপাদান... Accessories Books Electronics StringCollection2 উপাদান... Accessories Books Electronics দুটি স্ট্রিং কলেকশন কি সমান? = False
উদাহরণ ২: সেম রেফারেন্স চেক
using System;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
StringCollection strCol1 = new StringCollection();
strCol1.Add("Accessories");
strCol1.Add("Books");
strCol1.Add("Electronics");
Console.WriteLine("StringCollection1 উপাদান...");
foreach (string res in strCol1) {
Console.WriteLine(res);
}
StringCollection strCol2 = new StringCollection();
strCol2.Add("Accessories");
strCol2.Add("Books");
strCol2.Add("Electronics");
Console.WriteLine("StringCollection2 উপাদান...");
foreach (string res in strCol2) {
Console.WriteLine(res);
}
Console.WriteLine("দুটি স্ট্রিং কলেকশন কি সমান? = " + strCol1.Equals(strCol2));
// strCol3 = strCol2 (সেম রেফারেন্স)
StringCollection strCol3 = new StringCollection();
strCol3 = strCol2;
Console.WriteLine("StringCollection3 কি StringCollection2-এর সমান? = " + strCol3.Equals(strCol2));
}
}
আউটপুট
StringCollection1 উপাদান... Accessories Books Electronics StringCollection2 উপাদান... Accessories Books Electronics দুটি স্ট্রিং কলেকশন কি সমান? = False StringCollection3 কি StringCollection2-এর সমান? = True
ব্যাখ্যা: StringCollection.Equals রেফারেন্স সমতা চেক করে। কন্টেন্ট সমতা চেক করতে হলে strCol1.Count == strCol2.Count && strCol1.Cast<string>().SequenceEqual(strCol2.Cast<string>()) বা লুপ ব্যবহার করুন। StringCollection লিগ্যাসি নন-জেনেরিক ক্লাস; নতুন প্রজেক্টে List<string> ব্যবহার করুন যেটে SequenceEqual বা কাস্টম কম্পারিশন সহজ।