C# में दो List<T> ऑब्जेक्ट्स समान हैं या नहीं यह जांचने के लिए, हम Equals() मेथड का उपयोग करते हैं। डिफ़ॉल्ट रूप से List<T> Equals() को ओवरराइड नहीं करता, इसलिए यह रेफरेंस समानता की जांच करता है (दोनों वेरिएबल्स एक ही ऑब्जेक्ट को संदर्भित करते हैं)। सामग्री-आधारित तुलना के लिए SequenceEqual() (LINQ) या मैन्युअल तुलना का उपयोग करें।
उदाहरण 1: अलग-अलग सामग्री वाली सूचियों की तुलना
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(String[] args)
{
List<string> list1 = new List<string>();
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<string> list2 = new List<string>();
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
उदाहरण 2: रेफरेंस असाइनमेंट के साथ समानता
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(String[] args)
{
List<string> list1 = new List<string>();
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<string> list2 = new List<string>();
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<string> list3 = new List<string>();
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
मुख्य बिंदु:
List<T>.Equals()रेफरेंस समानता की जांच करता है (डिफ़ॉल्टObject.Equalsव्यवहार)list3 = list2दोनों को एक ही ऑब्जेक्ट की ओर इंगित करता है - इसलिएtrue- सामग्री समानता के लिए
System.LinqकाSequenceEqual()उपयोग करें:
using System.Linq; // ... bool areEqual = list1.SequenceEqual(list2);
- या कस्टम तुलना लॉजिक लिखें
List<T>जेनेरिक, टाइप-सेफ, औरArrayListसे बेहतर प्रदर्शन वाला है