VVS*_*VVS 2 c# extension-methods casting
为什么
List<long> numbers = Enumerable.Range(1, 9999).Cast<long>().ToList();
Run Code Online (Sandbox Code Playgroud)
失败并出现InvalidCastException?
看到这个答案:令人费解的Enumerable.Cast InvalidCastException
总之,Cast()适用于非泛型IEnumerable,它将每个int作为Object包装.因此,当调用Cast时,它只能将元素视为Object类型,而不能将其转换为long.
解决方案是使用Select执行显式转换:
var numbers = Enumerable.Range(1,9999).Select(i=>(long)i).ToList();
Run Code Online (Sandbox Code Playgroud)