2010-04-02 7 views
14

मेरे पास समान संदर्भ तत्वों के साथ दो अंक हैं, और यह सोचकर कि बराबर सत्य क्यों नहीं होंगे।दो संख्याओं के बीच समानता

एक पक्ष प्रश्न के रूप में, नीचे दिए गए कोड प्रत्येक तत्व काम करता है की तुलना करने के लिए, लेकिन एक और अधिक सुरुचिपूर्ण तरीका

var other = (ActivityService) obj; 
if (!AllAccounts.Count().Equals(other.AllAccounts.Count())) return false; 
for (int i = 0; i < AllAccounts.Count(); i++) { 
    if (!AllAccounts.ElementAt(i).Equals(other.AllAccounts.ElementAt(i))) { 
     return false; 
    } 
} 
return true; 
+0

http://stackoverflow.com/questions/876508/what-is-the-best-way-to-check-two-listt-lists-for-equality-in-c – Berryl

+0

संभावित डुप्लिकेट के संभावित डुप्लिकेट [ क्या सी #? में संग्रहों की तुलना करने के लिए एक अंतर्निहित विधि है? (Http://stackoverflow.com/questions/43500/is-there-a-built-in-method-to-compare-collections-in-c) – nawfal

उत्तर

29

Enumerable.SequenceEqual method पर एक नज़र डालें।

bool result = AllAccounts.SequenceEqual(other.AllAccounts); 

डेटा प्रकार के आधार पर आप भी overloaded method कि एक IEqualityComparer स्वीकार करता है एक कस्टम तुलना विधि को परिभाषित करने के उपयोग करने की आवश्यकता हो सकती है।

10

.Equals enumerables, नहीं तत्वों के संदर्भ तुलना कर रहा है वहाँ होना चाहिए वे होते हैं।