मैं तार की दो सूचियां पर एक कस्टम comparer को लागू करने और .Except() LINQ विधि का उपयोग उन है कि सूचियों में से एक एक नहीं हैं पाने के लिए कोशिश कर रहा हूँ। कारण मैं एक कस्टम तुलनात्मक कर रहा हूं क्योंकि मुझे "अस्पष्ट" तुलना करने की आवश्यकता है, यानी एक सूची में एक स्ट्रिंग को दूसरी सूची में एक स्ट्रिंग के अंदर एम्बेड किया जा सकता है।LINQ सिवाय और कस्टम IEqualityComparer
मैं निम्नलिखित comparer
public class ItemFuzzyMatchComparer : IEqualityComparer<string>
{
bool IEqualityComparer<string>.Equals(string x, string y)
{
return (x.Contains(y) || y.Contains(x));
}
int IEqualityComparer<string>.GetHashCode(string obj)
{
if (Object.ReferenceEquals(obj, null))
return 0;
return obj.GetHashCode();
}
}
जब मैं डिबग, केवल ब्रेकप्वाइंट कि हिट विधि GetHashCode() में है बनाया है। बराबर() कभी छुआ नहीं जाता है। कोई विचार?
मेरे लिए यह एक अच्छा अभ्यास था। मेरे मामले में मैं 'सार्वजनिक int GetHashCode (स्ट्रिंग obj) {वापसी obj.ToLower()। GetHashCode();}' आपका प्रश्न पुराना है लेकिन मैं 4 साल बाद एक ही मुद्दे में भाग गया। –