.net - Quickest way to find the complement of two collections in C# -
मेरे पास दो संग्रह प्रकार हैं ICollection ; सी 1 और सी 2 मैं सी 2 में मौजूद वस्तुओं के समूह को ढूंढना चाहूंगा जो कि सी 1 में नहीं हैं, जहां समानता के लिए अनुमानी आईडी संपत्ति है MyType।
इसे सी # में करने का सबसे तेज़ तरीका है।
संपादन: सी # संस्करण = 3.0
का उपयोग करें और विशेष रूप से IEqualityComparer & lt; MyType & gt;
:
var complement = c2.Except (c1, नया मायटाइप ईक्वैलिटी कम्पररर ());
ध्यान दें कि यह सेट फ़र्क का उत्पादन करता है और इस प्रकार c2
में डुप्लिकेट केवल परिणामी IEnumerable & lt; MyType & gt;
में दिखाई देगा यहां आपको IEqualityComparer & lt; MyType & gt;
जैसे कुछ के जैसा
वर्ग को लागू करने की आवश्यकता है MyTypeEqualityComparer: IEqualityComparer & lt; MyType & gt; {सार्वजनिक बाउल इक्ल्स (मायटाइप एक्स, मायटाइप वाई) {वापसी x.Id.Equals (y.Id); } सार्वजनिक इंट होशकोड (माइइपे ऑब्ज़) {वापसी obj.Id.GetHashCode (); }}
Comments
Post a Comment