2009-01-08 14 views
14

मैंने कुछ ब्लॉग पोस्ट पढ़ा है कि सार्वजनिक एपीआई के लिए हमें हमेशा सूची के बजाय आईसीओलेक्शन (या आईनेमेरेबल) वापस करना चाहिए। सूची के बजाय आईसीओलेक्शन लौटने का वास्तविक लाभ क्या है?सूची <T> की बजाय ICollection <T> लौटने का वास्तविक लाभ क्या है?

धन्यवाद!

डुप्लिकेट: What is the difference between List (of T) and Collection(of T)?

+0

यहाँ Replyed: http://stackoverflow.com/questions/271710/collectiont-versus-listt-what-should -आप-उपयोग-पर-आपके-इंटरफेस –

उत्तर

2

एक प्रगणक एक बार में केवल एक इकाई रिटर्न के रूप में आप इस पर पुनरावृति। ऐसा इसलिए है क्योंकि यह उपज रिटर्न का उपयोग करता है। दूसरी ओर, एक संग्रह, पूरी सूची देता है, जिसके लिए सूची पूरी तरह से स्मृति में संग्रहीत की आवश्यकता होती है।

संक्षिप्त उत्तर यह है कि गणक हल्के और अधिक कुशल हैं।

+0

हू ?! मुझे लगता है कि उसका मतलब है कि वापसी का प्रकार कैसे सेट करना है, न कि वास्तविक वस्तु को वापस करने के लिए। यह कक्षा इंटरफेस अनुबंध का मामला है। –

+0

वह पूछ रहा था कि एक सूची बनाम एक गणक को वापस करने का लाभ क्या था, नहीं। – Soviut

0

आईसीओलेक्शन सिर्फ एक इंटरफ़ेस है, जबकि सूची उस इंटरफ़ेस का एक विशिष्ट कार्यान्वयन है। क्या होगा यदि आप बाद में सूची के अलावा किसी अन्य कंटेनर का उपयोग करना चाहते थे? यदि आप सार्वजनिक रूप से आईसीओलेक्शन इंटरफ़ेस का पर्दाफाश करते हैं, तो आप अपने आंतरिक कंटेनर को बाद में किसी अन्य चीज़ में बदल सकते हैं - जब तक कि नया कंटेनर आईसीओलेक्शन इंटरफ़ेस भी लागू करता हो।

2

अंतर्निहित डेटा संरचना चुनते समय यह आपको अधिक स्वतंत्रता देता है।

एक सूची मानती है कि कार्यान्वयन अनुक्रमण का समर्थन करता है, लेकिन आईसीओलेक्शन इस तरह की धारणा नहीं करता है।

इसका मतलब यह है कि अगर आपको पता चलता है कि एक सेट बेहतर प्रदर्शन प्रदान कर सकता है क्योंकि ऑर्डरिंग अप्रासंगिक है, तो आप ग्राहकों को प्रभावित किए बिना अपना दृष्टिकोण बदल सकते हैं।

यह मूल encapsulation है।

1

मुझे लगता है कि होगा IList अधिक उचित होगा, लेकिन ...

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