为什么会这样:
(new[]{1,2,3}).Cast<decimal>();
结果是
InvalidCastException: Specified cast is not valid.
最佳答案
是的,Cast
不会那样做。基本上它只是进行引用转换和拆箱转换——而不是不同值类型之间的转换。
改用这个:
(new[]{1,2,3}).Select(x => (decimal)x)
请注意,在 .NET 3.5 SP1 之前的版本中,Cast
进行的转换比现在多一些。我不知道当时是否可行,但现在肯定行不通。
关于c# - .net 麻烦类型转换整数做小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364675/