Type
ऑब्जेक्ट को देखते हुए सबसे आसान तरीका क्या है, यह देखने के लिए कि यह वास्तव में वस्तुओं की एक सूची है या नहीं? अर्थात। ऐरे या आईनेमेरेबल/आईनेमेरेबल <>।यह कैसे बताने के लिए कि कोई प्रकार एक सूची या सरणी या IENumerable या
उत्तर
typeof(IEnumerable).IsAssignableFrom(type)
देखें।
सरणी समेत प्रत्येक संग्रह प्रकार और IEnumerable<T>
, IEnumerable
लागू करता है।
सरल। ऐसा करने के लिए सबसे आसान काम निम्नलिखित है:
IList<T> listTest = null;
try{
listTest = ((IList<T>)yourObject);
}
catch(Exception listException)
{
//your object doesn't support IList and is not of type List<T>
}
IEnumerable<T> enumerableTest = null;
try{
enumerableTest = ((IEnumerable<T>)yourObject);
}
catch(Exception enumerableException)
{
//your object doesn't suport IEnumerable<T>;
}
================================== ================
आप यह भी कोशिश कर सकते हैं जिसमें एकाधिक प्रयास/पकड़ ब्लॉक शामिल नहीं हैं। यह बेहतर है अगर आप उन लोगों का उपयोग करने से बच सकते हैं क्योंकि प्रत्येक शर्त वास्तव में रनटाइम के दौरान रनटाइम द्वारा मूल्यांकन की जाती है ... यह खराब कोड है (हालांकि कभी-कभी इसके आसपास कोई रास्ता नहीं है)।
Type t = yourObject.GetType();
if(t is typeof(List<OjbectType>)) //object type is string, decimal, whatever...
{
// t is of type List<ObjectType>...
}
else if(t is typeof(IEnumerable<ObjectType>)
{
// t is of type IEnumerable<ObjectType>...
}
else
{
// t is some other type.
// use reflection to find it.
}
'listTest = ((IList
वाह क्या गड़बड़ कर सकते हैं। यहां कम से कम चार चीजें बुरी तरह गलत हैं। (1) 'is' या' as' का उपयोग करने के बजाय अपवादों को पकड़ना। (2) 'अमान्यकास्टएक्सप्शन' के बजाय 'अपवाद' को पकड़ना। (3) दूसरे कोड ब्लॉक में, सोच रहा है कि सी # 'है 'वैसे ही काम करता है जैसे VB6' Is' - वास्तव में '==' सही ऑपरेटर है, लेकिन यह अभी भी असफल हो जाएगा क्योंकि (4) 'GetType()' हमेशा एक कंक्रीट क्लास लौटाता है, कभी भी इंटरफ़ेस जैसे 'आईनेमेरेबल
if (objType.IsArray || objType.IsGenericType)
{
}
' objType.IsGenericType' 'सत्य' वापस आ जाएगा, अगर यह' int 'है और 'Nullable
@MatthiasBurger नहीं है मैंने इसका परीक्षण किया यह झूठा –
@AlaMusleh यह वापस int के लिए सच है? –
- 1. window.open .. यह बताने का एक तरीका है कि विंडो में टाइमआउट या 404 था या नहीं?
- 2. यह निर्धारित करने के लिए कि कोई कुंजी एक अक्षर या संख्या है या नहीं?
- 3. यह निर्धारित करने के लिए कि कोई प्रकार संग्रह का प्रकार है या नहीं?
- 4. क्या कोई GWT प्रोग्राम यह बताने का कोई तरीका है कि यह होस्टेड या वेब मोड में है या नहीं?
- 5. यह जांचने के लिए कि JSON डेटा एक ऑब्जेक्ट या ऑब्जेक्ट्स की सरणी है या नहीं?
- 6. यह जांचने के लिए कि कोई चर एक संख्या या स्ट्रिंग है या नहीं?
- 7. यह बताने का तरीका है कि पूर्वजों रूबी में कक्षा या मॉड्यूल है या नहीं?
- 8. जावा - यह जांचने के लिए कि कोई विभाजन एक पूर्णांक या फ़्लोट है या नहीं?
- 9. जावा: एक कन्स्ट्रक्टर या विधि जो सरणी या सेट या सूची स्वीकार करेगी या ...?
- 10. क्या यह बताने का कोई तरीका है कि एक एंड्रॉइड डिवाइस केवल वाईफाई है या नहीं?
- 11. मैं कैसे निर्धारित कर सकता हूं कि कोई सूची केवल एक स्ट्रिंग या तारों की सूची है या नहीं?
- 12. कैसे जांचें कि सरणी शून्य या खाली है या नहीं?
- 13. यह पता लगाने के लिए कि कोई प्रकार एक इटरेटर या const_iterator
- 14. Django सरणी या सूची आउटपुट?
- 15. यह निर्धारित करने के लिए कि यह जावास्क्रिप्ट या jquery में दिन या रात है या नहीं?
- 16. यह जांचने के लिए कि कोई फ़ाइल निर्देशिका या पाइथन में नियमित फ़ाइल है या नहीं?
- 17. यह पता लगाने के लिए कि कोई फ़ाइल पीडीएफ या टीआईएफएफ है या नहीं?
- 18. यह निर्धारित करने के लिए कि कोई ऐप मूल या HTML5 है या नहीं?
- 19. जांचें कि कोई तर्क एक सूची है या परमाणु
- 20. कोको: यह पता लगाने के लिए कि कोई एनएसएसटींग अपरिवर्तनीय या परिवर्तनीय है या नहीं?
- 21. यह पता लगाने के लिए कि कोई कनेक्टेड यूएसबी प्रिंटर चालू या बंद है या नहीं?
- 22. यह पता लगाने के लिए कि कोई ऑब्जेक्ट जेनेरिक सूची प्रकार और आवश्यक प्रकार पर डाला गया है या नहीं?
- 23. कन्वर्ट CollectionBase सूची करने के लिए या डेटा प्रकार Linq
- 24. क्या यह बताने का कोई तरीका है कि उपयोगकर्ता सी # में पूछे बिना मीट्रिक या शाही पसंद करेगा या नहीं?
- 25. यह निर्धारित करने के लिए कि कोई सिस्टम। डायग्नोस्टिक्स.प्रोसेस 32 या 64 बिट है या नहीं?
- 26. यह जांचने के लिए कि कोई वेबपृष्ठ मौजूद है या नहीं। jQuery और/या PHP
- 27. फ़ंक्शन पैरामीटर: IENumerable, ICollection या array?
- 28. यह जांचने के लिए कि कोई int शून्य या खाली नहीं है या नहीं?
- 29. क्या यह निर्धारित करना संभव है कि कोई प्रकार एक स्कॉम्ड गणना प्रकार है या नहीं?
- 30. Win32 API यह निर्धारित करने के लिए कि कोई पथ सापेक्ष या पूर्ण है या नहीं?
धन्यवाद - मैं, 'बाहर करने के लिए स्ट्रिंग' था, क्योंकि है कि' Char' की एक सरणी के रूप में आया था और मुझे लगता है कि नहीं चाहता था। :) –
हां; मैं उसके बारे में भूल गया। – SLaks
System.Xml.XmlText के साथ-साथ System.Xml.XmlNode के अन्य वंशजों को भी बाहर निकालें। –