আপনি যখন একটি স্পষ্ট পরিসীমা পরিবর্তনশীল প্রকারটি নির্দিষ্ট করেন , কম্পাইলারটি একটি কল সন্নিবেশ করায় 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>
। প্রায় সমস্ত লিনকিউ টু অবজেক্টস এক্সটেনশন পদ্ধতিগুলিতে লক্ষ্যবস্তু করা IEnumerable<T>
হয় এবং এর উল্লেখযোগ্য ব্যতিক্রমগুলি Cast
এবং OfType
উভয়ই "দুর্বল" টাইপযুক্ত সংগ্রহকে (যেমন MatchCollection
) জেনেরিতে রূপান্তর করতে ব্যবহৃত হয় IEnumerable<T>
- যা পরবর্তী লিনকিউ অপারেশনের জন্য অনুমতি দেয়।