decimal?
是否有将对象转换为数据类型的单行方式?
我的代码看起来像这样:
foreach(DataRow row in dt.Rows)
{
var a = new ClassA()
{
PropertyA = row["ValueA"] as decimal?,
PropertyB = row["ValueB"] as decimal?,
PropertyC = row["ValueC"] as decimal?
};
// Do something
}
但是,将对象转换为 adecimal?
并不能按我期望的方式工作,并且每次都返回 null。
数据行是从 Excel 文件中读取的,因此每行中对象的数据类型要么是 a(double
如果有值),要么是 null(string
如果它留空)。
执行此转换的建议方法是使用decimal.TryParse
,但是我不想为类上的每个小数属性创建一个临时变量(我的实际类中有大约 7 个属性是小数,而不是 3 个)。
decimal tmpvalue;
decimal? result = decimal.TryParse((string)value, out tmpvalue) ?
tmpvalue : (decimal?)null;
有没有办法可以decimal?
在一行中将潜在的空值转换为 a?
我尝试了此处发布的答案,但是它似乎没有工作,并且也给了我一个null
值,因为row["ValueA"] as string
返回null
。