我有这个代码,我需要确定接收的值是否为DateTime,如果是,返回0否则返回值以计算总和:
row["Total"] = months.Sum(kv =>
{
DateTime dateValue;
if (!DateTime.TryParse(kv.Value, out dateValue))
{
return double.Parse(kv.Value);
}
else
{
return 0;
}
});
但这些值也被视为DateTime?
1726.07
4756.06
1.08
1.27
1.11
将每个double值视为DateTime吗?
答案 0 :(得分:1)
如果你“一路走来”怎么办:
row["Total"] = months.Sum(kv =>
{
double toReturn = 0;
if (!Double.TryParse(kv.Value, out toReturn )) return 0;
return toReturn;
});
有时可以使用DateTime.Parse解析双值,但我不相信你可以解析像“22/06/2015”这样的日期来加倍。而你真的不需要这个'其他'的声明。
其他选项是使用DateTime.TryParseExact并指定日期格式......
答案 1 :(得分:-1)
你可以试试这个..
DateTime dateValue;
months.Where(kv=>(!DateTime.TryParse(kv.Value, out dateValue))).Sum(kv =>double.Parse(kv.Value));//Sum of values where values are not datetime