जब आप एक स्पष्ट श्रेणी चर प्रकार निर्दिष्ट करते हैं , तो संकलक एक कॉल सम्मिलित करता है Cast<T>। तो यह:
bool result = (from Match m in matches
where m.Groups["name"].Value.Length > 128
select m).Any();
इसके बराबर है:
bool result = matches.Cast<Match>()
.Where(m => m.Groups["name"].Value.Length > 128)
.Any();
जिसे इस प्रकार भी लिखा जा सकता है:
bool result = matches.Cast<Match>()
.Any(m => m.Groups["name"].Value.Length > 128);
इस मामले में Castकॉल की आवश्यकता है क्योंकि MatchCollectionकेवल लागू होता है ICollectionऔर IEnumerable, नहीं IEnumerable<T>। लगभग सभी LINQ से ऑब्जेक्ट्स के विस्तार के तरीकों को लक्षित किया जाता है IEnumerable<T>, जिनमें से उल्लेखनीय अपवादों के साथ Castऔर OfTypeदोनों का उपयोग "कमजोर" टाइप किए गए संग्रह (जैसे MatchCollection) को एक जेनेरिक में बदलने के लिए किया जाता है IEnumerable<T>- जो इसके बाद LINQ संचालन के लिए अनुमति देता है।