List<T>.Equals() মেথড (Object.Equals থেকে উত্তরাধিকার) রেফারেন্স সমানতা চেক করে। দুটি আলাদা লিস্ট একই উপাদান ধারণ করলেও false রিটার্ন করবে। কন্টেন্ট সমানতা চেক করতে SequenceEqual (LINQ) বা কাস্টম লজিক ব্যবহার করুন।
উদাহরণ ১: ভিন্ন কন্টেন্টवाले লিস্ট (False)
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(String[] args){
List list1 = new List();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");
list1.Add("Five");
Console.WriteLine("List1-এ উপাদানসমূহ...");
foreach (string res in list1){
Console.WriteLine(res);
}
List list2 = new List();
list2.Add("India");
list2.Add("US");
list2.Add("UK");
list2.Add("Canada");
list2.Add("Poland");
list2.Add("Netherlands");
Console.WriteLine("List2-এ উপাদানসমূহ...");
foreach (string res in list2){
Console.WriteLine(res);
}
Console.WriteLine("List2 List1-এর সমান? = " + list2.Equals(list1));
}
}
আউটপুট
List1-এ উপাদানসমূহ...
One
Two
Three
Four
Five
List2-এ উপাদানসমূহ...
India
US
UK
Canada
Poland
Netherlands
List2 List1-এর সমান? = False
উদাহরণ ২: রেফারেন্স সমানতা (True)
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(String[] args){
List list1 = new List();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");
list1.Add("Five");
Console.WriteLine("List1-এ উপাদানসমূহ...");
foreach (string res in list1){
Console.WriteLine(res);
}
List list2 = new List();
list2.Add("India");
list2.Add("US");
list2.Add("UK");
list2.Add("Canada");
list2.Add("Poland");
list2.Add("Netherlands");
Console.WriteLine("List2-এ উপাদানসমূহ...");
foreach (string res in list2){
Console.WriteLine(res);
}
List list3 = new List();
list3 = list2; // একই রেফারেন্স
Console.WriteLine("List3 List2-এর সমান? = " + list3.Equals(list2));
}
}
আউটপুট
List1-এ উপাদানসমূহ...
One
Two
Three
Four
Five
List2-এ উপাদানসমূহ...
India
US
UK
Canada
Poland
Netherlands
List3 List2-এর সমান? = True
সঠিক পদ্ধতি: কন্টেন্ট সমানতা চেক করতে list1.SequenceEqual(list2) (using System.Linq) ব্যবহার করুন। এটি উপাদান এবং অর্ডার দুটোই মিলায়।