6
जब this question जवाब देने के लिए कोशिश कर रहा है, मैं निम्नलिखित की खोज:कास्टिंग और Linq कास्ट <T>()
string s = "test";
var result1 = s.Select(c => (ushort)c); // works fine
var result2 = s.Cast<ushort>(); // throws an invalid cast exception
क्यों Cast<T>()
यहाँ असफल रहा है? क्या फर्क पड़ता है?
धन्यवाद मार्टिन बॉक्सिंग कर दिया गया है है करने के लिए हो जाता है। यह तो दिलचस्प है. तो कास्ट शायद निहित मुक्केबाजी प्रदर्शन दंड के लिए किसी भी तरह से बचा जाना चाहिए। मुझे आश्चर्य है कि एमएसडीएन का उल्लेख कहीं भी नहीं है (जो भी मुझे मिल सकता है)। –
fearofawhackplanet
'कास्ट' का उपयोग केवल 'IENumerable' को 'IENumerable ' के स्तर तक लाने के लिए किया जाना है, जहां अन्य सभी LINQ ऑपरेटरों को परिभाषित किया गया है। 'IENumerable 'लेना और इसे' IENumerable 'में परिवर्तित करना एक प्रक्षेपण है, जो' चयन' द्वारा किया जाता है। तथ्य यह है कि 'कास्ट'' IENumerable 'पर भी संभव है, क्योंकि' IENumerable ''IENumerable' से विरासत है - कोई अन्य कारण नहीं है। –