也许我疯了,但我认为这是一个有效的演员阵容:
(new int[]{1,2,3,4,5}).Cast<double>()
为什么 LinqPad 会抛出
InvalidCastException:指定的强制转换无效。
?
C# 允许从int
直接到double
,但不是来自int
to object
to double
.
int i = 1;
object o = i;
double d1 = (double)i; // okay
double d2 = (double)o; // error
The Enumerable.Cast
扩展方法的行为类似于后者。它不会将值转换为不同的类型,它断言值已经是预期的类型,如果不是,则抛出异常。
你可以尝试(new int[]{1,2,3,4,5}).Select(i => (double)i)
相反,以获得价值转换行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)