c# - .net 麻烦类型转换整数做小数

标签 c# .net linq casting

为什么会这样:

(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/

相关文章:

c# - 没有 ASP.NET Identity 的 OWIN cookie 身份验证

c# - 使用具有鉴别器和多态性的 C# MongoDB v2 驱动程序

performance - NHibernate LINQ 查询性能,哪个代码片段更好?

c# - 如何在 C# 中将大二进制字符串转换为十六进制字符串格式?

.net - Windows 上是否有 Valgrind for .Net 的等价物?

c# - ConfigurationManager.OpenMappedExeConfiguration 的问题

c# - linq选择日期之间的位置

c# - 如何使用try-catch获取代码的错误行号

c# - 将 MailItem 转换为内存中的 MSG,而不是文件系统中的 MSG

c# - 在 n(log n) 算法末尾添加额外循环会影响复杂性吗?