2010-07-07 23 views
5

अगर मैं एक विधि या एक संपत्ति है कि एक IEnumerable<SomeType> कि कोई भी डेटा की ओर जाता है देता है, यह एक खाली सरणी new SomeType[0] वापस जाने के लिए और अधिक कुशल है या यह एक खाली सूची new List<SomeType>() वापस जाने के लिए बेहतर है या उसमें कोई भी है बेहतर समाधान (आईएमओ जेनरिक्स के साथ अपने स्वयं के प्रकार का निर्माण ऐसा समाधान हो सकता है लेकिन यह मुझे थोड़ा अधिक ओवरकिल लगता है)?डेटा के बिना IEnumerable

सरणी मेरा पसंदीदा है लेकिन आप इसके बारे में क्या सोचते हैं?

+0

खाली सूची होना चाहिए क्योंकि यह रनटाइम के लिए सुरक्षित है। – thethanghn

+4

@thethanghn: क्या आप "रनटाइम के लिए सुरक्षित" से क्या मतलब समझ सकते हैं? रिक्त सरणी की तुलना में एक खाली सूची कम सुरक्षित है क्योंकि * रिक्त सूची को अब खाली नहीं किया जा सकता है *। एक खाली सरणी नहीं कर सकते हैं। –

उत्तर

15

रिटर्न Enumerable.Empty<T>()

+0

संपत्ति को बुलाए जाने पर हर बार एक नई वस्तु बनाने से बेहतर। –

+1

मुझे अभी भी यह अजीब लगता है कि यह संख्यात्मक है। अंक () संख्यात्मक के बजाय। लक्षण()। – spender

+0

शायद अगर यह "संख्यात्मक है। लक्षण()" तो गणना करने योग्य के लिए क्लास कन्स्ट्रक्टर प्रत्येक प्रकार के लिए कॉल किया जाएगा (यदि पहले से प्रारंभ नहीं किया गया है) और "संख्यात्मक। लक्षण ()" के साथ इसे रोक दिया जा सकता है (केवल एक विचार है, मेरे पास जेनेरिक का कोई गहरा ज्ञान नहीं है)। – HCL

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