DateTime.TryParse实现问题

时间:2015-06-22 08:59:04

标签: c# .net

我有这个代码,我需要确定接收的值是否为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吗?

2 个答案:

答案 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