繁体   English   中英

C#LINQ查询中的ToString转换

[英]ToString conversion in the C# LINQ query

我在C#中的字符串比较遇到了(很可能是一个琐碎的问题)

我正在运行此LINQ查询

var result = from q in Table
             where q.ValueDate.ToString() == "12/11/2014 12:00:00 AM"
             select q;

并得到空的回应

但是,当我尝试

foreach (var i in Table)
{
    Console.WriteLine(i.ValueDate.ToString());
}

我懂了

12/11/2014 12:00:00 AM
12/11/2014 12:00:00 AM
12/11/2014 12:00:00 AM
12/11/2014 12:00:00 AM

我在这里做错了什么?

我不会通过将Date转换为字符串来牺牲Date的类型安全性-可能发生的事情是,通过DB中的CAST / CONVERTToString()转换为* Char类型,这导致了不同的格式。 这是我的处理方式:

var checkDateTime = new DateTime(2014, 11, 12);
var result = from q in Table
          where q.ValueDate == checkDateTime
          select q;

您可以使用DateTime对象而不是进行字符串比较:

DateTime filter = new DateTime(2014,12,11);
var result = from q in Table
              where q.ValueDate == filter)
              select q

或尝试指定您的日期格式:

var result = from q in Table
              where q.ValueDate.ToString("dd/MM/yyyy hh:mm:ss tt") == "12/11/2014 12:00:00 AM"
              select q;

请参阅附加的小提琴示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM