2015-01-09 10 views
6

एक वापसी पैरामीटर प्रकार या इनपुट पैरामीटर प्रकार के रूप में IEnumerable<T> बनाम IReadOnlyList<T> चुनने के बीच क्या अंतर है?IEnumerable <T> बनाम IReadOnlyList <T>

IEnumerable<T>.Count और .ElementAt है जो क्या द्वारा IReadOnlyList<T>

उत्तर

11

IEnumerable<T> सामने आ रहा है का प्रतिनिधित्व करता है एक-केवल आगे कुछ डेटा पर कर्सर प्रदान करता है। आप संग्रह के प्रारंभ से अंत तक जा सकते हैं, एक समय में एक आइटम को देख सकते हैं।

IReadOnlyList<T> एक पठनीय यादृच्छिक अभिगम संग्रह का प्रतिनिधित्व करता है।

IEnumerable<T> अधिक सामान्य है, जिसमें यह फ्लाई पर उत्पन्न वस्तुओं का प्रतिनिधित्व कर सकता है, नेटवर्क पर आने वाले डेटा, डेटाबेस से पंक्तियां इत्यादि। IReadOnlyList<T> दूसरी ओर मूल रूप से केवल स्मृति-संग्रह संग्रह का प्रतिनिधित्व करता है।

यदि आपको केवल एक बार प्रत्येक आइटम को देखने की आवश्यकता है, तो IEnumerable<T> बेहतर विकल्प है - यह अधिक सामान्य है।

मैं वास्तव में सी ++ मानक टेम्पलेट लाइब्रेरी को देखने की अनुशंसा करता हूं - विभिन्न प्रकार के पुनरावृत्तियों की उनकी चर्चा वास्तव में आपके प्रश्न के लिए बहुत अच्छी तरह से मानचित्र बनाती है।

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