2012-06-07 4 views

उत्तर

13

Distinct विधि HashSet<> पर नहीं है, लेकिन IEnumerable<> कि HashSet<> द्वारा कार्यान्वित किया जाता।

एक्सटेंशन विधियों को कुछ प्रकार से "छोड़ा नहीं जा सकता"। एक बार एक प्रकार में जोड़ा जाने के बाद, उस प्रकार के सभी और किसी भी व्युत्पन्न को विस्तार विधि मिल जाएगी।

बस प्रदर्शित करने के लिए, यदि आपने object बढ़ाया है तो यदि आप प्रासंगिक नामस्थान जोड़ते हैं तो आप सबकुछ कूड़ेगा। तो जोड़ने मत जाओ:

namespace System 
{ 
    public static class ObjectExtensions 
    { 
     public static void Garbage(this object foo) 
     { 
     } 
    } 
} 
+0

स्पष्ट करने के लिए '' Distinct' IEnumerable 'पर एक विस्तार विधि है, जो' HashSet 'लागू करने के लिए होता है। – bluevector

+0

@jonnyGold हाँ मुझे एहसास हुआ, मैंने अभी आपकी टिप्पणी से पहले अपना जवाब संपादित किया है। वैसे भी स्पष्टीकरण के लिए धन्यवाद। –

+1

और भी सटीक होने के लिए, 'डिस्टिंट' एक विस्तार विधि है, जो 'IENumerable <>' को विस्तारित करता है और स्थिर वर्ग 'System.Linq.Enumerable' में रहता है। –

संबंधित मुद्दे