2011-03-14 10 views
11

IEnumerables<T> में सभी तत्वों को गिनने के बिना struct तत्वों का संग्रह, यह पता लगाने का सबसे अच्छा तरीका क्या है कि यह खाली है?कैसे पता चलेगा कि एक आईनेमरेबल <ValueType> खाली है, बिना गिनती के?

उदाहरण के लिए, class तत्वों पर मैं सामान्य रूप से साथ परीक्षण होगा पहले या डिफ़ॉल्ट:

myEnumerableReferenceTypeElements.FirstOrDefault() == null 

क्योंकि अशक्त सामान्य रूप से संग्रह में कोई मान्य मान दोहराया नहीं किया जा रहा है।

हालांकि, मूल्य प्रकारों के मामले में जहां सभी मान पूर्वनिर्धारित सीमा में होना चाहिए, डिफ़ॉल्ट मान (उदा। 0 का int डिफ़ॉल्ट) संग्रह में एक व्यवहार्य वस्तु भी है।

myValueTypeInt32Elements.FirstOrDefault() == 0 // can't tell if empty for sure 
+2

अंतर्निहित प्रकार के बावजूद आपको 'Any' का उपयोग करना चाहिए। – jason

+0

संभावित डुप्लिकेट [सी #: यह अनुक्रमित तरीका है कि कोई अनुक्रम खाली है या नहीं) (http://stackoverflow.com/questions/2094729/c-recommended-way-to-check-if-a-sequence-is-empty) – nawfal

उत्तर

12

MSDN

से .Any()

bool isEmpty = !myEnumerable.Any(); 

उपयोग करने का प्रयास

निर्धारित करता है एक दृश्य किसी भी तत्व शामिल हैं या नहीं।

+0

आप ड्रा पर पहले थे। अंत में इतना आसान है। धन्यवाद। –

+0

@ जॉन के कोई समस्या नहीं, खुशी हुई इससे मदद मिली। –