簡體   English   中英

DateTime.TryParse實現問題

[英]DateTime.TryParse implementation issue

我在需要確定接收的值是否為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

那么每個雙精度值都將被視為DateTime嗎?

如果“一路走來”怎么辦:

row["Total"] = months.Sum(kv =>
                            {
                                double toReturn = 0;
                                if (!Double.TryParse(kv.Value, out toReturn )) return 0;

                                return toReturn;            
                            });

有時可以使用DateTime.Parse解析雙精度值,但我不相信您可以將“ 22/06/2015”之類的日期解析為雙精度。 而且您實際上並不需要此“ else”語句。

其他選擇是使用DateTime.TryParseExact並指定日期格式...

你可以試試看

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM