2010-11-15 19 views

उत्तर

70

एक List<string> को लागू है IEnumerable<string> का एक ठोस कार्यान्वयन है। अंतर यह है कि IEnumerable<string> केवल string का अनुक्रम है लेकिन List<string>int अनुक्रमणिका द्वारा अनुक्रमित किया जा सकता है, इसमें जोड़ा जा सकता है और हटाया जा सकता है और किसी विशेष अनुक्रमणिका में आइटम डाला जा सकता है।

असल में, इंटरफ़ेस IEnumerable<string> आप अनुक्रम में string स्ट्रीम करने देता है लेकिन List<string> आप ऐसा करते हैं और साथ ही संशोधित करने और विशिष्ट तरीके से सूची में आइटम पहुंचने देता है। IEnumerable<string>string का सामान्य अनुक्रम है जिसे पुनरावृत्त किया जा सकता है लेकिन यादृच्छिक पहुंच की अनुमति नहीं देता है। एक List<string> एक विशिष्ट यादृच्छिक-अभिगम चर-आकार संग्रह है।

+4

यह उत्तर http://stackoverflow.com पर उन लोगों की तुलना में अधिक उपयोगी था/प्रश्न/764748/क्या-अंतर-बीच-ienumerable-and-array-ilist-and-list – JYelton

+0

ठोस कार्यान्वयन का क्या अर्थ है? क्या इसका अर्थ है Ienumerable से विरासत विरासत? – user1534664

+1

@ user1534664: नहीं। इसका मतलब है कि यह 'आईनेमेरेबल' * से प्राप्त होता है और * यह अमूर्त नहीं है, यह वास्तव में रचनात्मक है। – jason

4

IEnumerable<T> एक इंटरफ़ेस है। इसे लागू किया जाना चाहिए। http://msdn.microsoft.com/en-us/library/9eekhta0.aspx

अन्य एक वर्ग है कि इंटरफ़ेस को लागू करता है:

List<T>IEnumerable<T>

2

एक से एक कार्यान्वयन एक अंतरफलक है http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

इसके अलावा, सूची एक सरणी है कि जब बढ़ता है आप इसमें तत्व जोड़ते हैं, जबकि IENumerable लागूकर्ताओं को एक foreach में उपयोग करने की अनुमति देता है।

2

पहले तार का एक ठोस List है, अन्य किसी भी वर्ग IEnumerable<string>

10

अलग।

आईनेमरेबल आपको प्रत्येक लूप के लिए संग्रह के माध्यम से पुन: सक्रिय करने में सक्षम बनाता है।

और आईनेमेरेबल में विधि GetEnumerator है।

और इसे आईएनमेर्यूरेबल, आईलिस्ट इत्यादि जैसे कई इंटरफ़ेस को कार्यान्वित करें। सूची में इतने सारे फ़ंक्शन।

प्रदर्शन में आईनेमेरेबल सूची से तेज़ी से।

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