जब मेरे पास चीजों की सूचियों के साथ मेरे डोमेन में इकाइयां हैं, तो क्या उन्हें ILists या IENumerables के रूप में उजागर किया जाना चाहिए? जैसे आदेश ऑर्डरलाइन का एक गुच्छा है।संस्थाओं पर संग्रह के लिए ILI बनाम IENumerable
उत्तर
IEnumerable<T>
उन वस्तुओं की एक श्रृंखला का प्रतिनिधित्व करता है जिन्हें आप पुन: सक्रिय कर सकते हैं (उदाहरण के लिए foreach का उपयोग करके), जबकि IList<T>
एक संग्रह है जिसे आप जोड़ या निकाल सकते हैं।
आमतौर पर आप ऑर्डरलाइन को जोड़कर या निकालकर ऑर्डर को संशोधित करने में सक्षम होना चाहते हैं, तो शायद आप ऑर्डर चाहते हैं। लाइन IList<OrderLine>
हो।
ऐसा कहकर, कुछ फ्रेमवर्क डिजाइन निर्णय लेना चाहिए जो आपको करना चाहिए। उदाहरण के लिए, क्या ऑर्डरलाइन के दो अलग-अलग ऑर्डर में एक ही उदाहरण जोड़ना संभव हो सकता है? शायद ऩही। इसलिए दिया गया है कि आप ऑर्डरलाइन को ऑर्डर में जोड़ना चाहिए या नहीं, आप वास्तव में लाइन्स प्रॉपर्टी को केवल IEnumerable<OrderLine>
के रूप में सतह पर रखना चाहते हैं, और एड (ऑर्डरलाइन) और निकालें (ऑर्डरलाइन) विधियां प्रदान कर सकते हैं जो कर सकते हैं उस सत्यापन को संभाल लें।
अधिकांश समय मैं आईनेस्ट के साथ आईएनयूमेरेबल पर जा रहा हूं क्योंकि आईनेमेरेबल में गिनती विधि नहीं है और आप एक इंडेक्स के माध्यम से संग्रह तक नहीं पहुंच सकते हैं (हालांकि यदि आप LINQ का उपयोग कर रहे हैं तो आप विस्तार के साथ इसे प्राप्त कर सकते हैं विधि)।
मेरा मानना है कि आप हमेशा IEnumerable के साथ एक IList कार्यान्वयन का दृष्टांत कर सकते हैं गणना विधि और उदाहरण के लिए की तरह उपयोग करने के लिए की जरूरत है: IEnumerable
IEnumerable
"आप एक अनुक्रमणिका के माध्यम से संग्रह तक नहीं पहुंच सकते" - 'ElementAt' विधि के बारे में क्या? – ivamax9
- 1. सार्वजनिक संग्रह के लिए कस्टम संग्रह बनाम जेनेरिक संग्रह
- 2. IENumerable, IENumerator बनाम foreach,
- 3. कैसे एफई में संस्थाओं के बच्चे संग्रह ऑर्डर करने के लिए
- 4. DOMDocument :: loadXML बनाम HTML संस्थाओं
- 5. LINQ संस्थाओं के लिए नेस्टेड सूची
- 6. IENumerables के संग्रह पर पूर्वानुमान
- 7. $ .each ([संग्रह]) बनाम $ ([संग्रह])। प्रत्येक()
- 8. Linq संस्थाओं के लिए वाम
- 9. DTD संस्थाओं बनाम एक्सएमएल-स्कीमा तत्वों
- 10. संस्थाओं
- 11. दृढ़ता से संस्थाओं
- 12. जावा संग्रह। चेक * *) बनाम जेनेरिक संग्रह
- 13. IENumerable.Cast() बनाम IENumerable में कास्टिंग। चयन करें()
- 14. अगर एक LINQ संस्थाओं के लिए क्वेरी इस तरह संस्थाओं अभिव्यक्ति के लिए कोई मान
- 15. संग्रह/स्ट्रिंग। बनाम संग्रह/स्ट्रिंग। इंडेक्सऑफ
- 16. जावा संग्रह मानचित्र बनाम संग्रह ढांचे
- 17. IList.IndexOf() की पसंद में कुछ लेकिन IENumerable <T> पर?
- 18. LINQ बनाम संग्रह दृश्य
- 19. Linq संस्थाओं के लिए निर्माता Datetime
- 20. LINQ संस्थाओं के लिए समर्थित नहीं SqlFunctions.DateDiff
- 21. जावा addAll (संग्रह) नए बनाम ArrayList (संग्रह)
- 22. बैकबोन संग्रह पर लूप के लिए
- 23. चेक एक अगर IEnumerable एक और IEnumerable
- 24. @embeddable बनाम @entity एक संग्रह मैपिंग के लिए
- 25. LINQ संस्थाओं EF4
- 26. मेमोरी-मैप किए गए फ़ाइल "स्मृति में" बड़े डेटासेट को संग्रहीत करने के लिए, ILI कार्यान्वयन?
- 27. IEnumerable
- 28. सॉर्ट के बारे में संग्रह बनाम Arrays()
- 29. IENumerable
- 30. भीतरी संस्थाओं
क्या दोनों को लागू करना बुद्धिमान होगा? – PedroC88
यह नहीं होगा। आईएलयूमेरेबल से एक आईएलिस्ट विरासत में आता है। – Unknown1987