Linq to sql Linq数据比较问题

Linq to sql Linq数据比较问题,linq-to-sql,Linq To Sql,我有下面的代码,但它不工作,以comapre一个日期转换的形式字符串可以任何机构帮助我在这方面提前感谢 DateTime dt = DateTime.Now; List<DateTime> dateTimes = new List<DateTime>(); dateTimes.Add(dt); dateTimes.Add(dt); dateTimes.Add(dt); stri

我有下面的代码,但它不工作,以comapre一个日期转换的形式字符串可以任何机构帮助我在这方面提前感谢

        DateTime dt = DateTime.Now;
        List<DateTime> dateTimes = new List<DateTime>();
        dateTimes.Add(dt);
        dateTimes.Add(dt);
        dateTimes.Add(dt);
        string str = dt.ToString();
        DateTime myDateTime = DateTime.Parse(str);

        var query = from d in dateTimes
                    where d == myDateTime
                    select d;
        foreach (var result in query)
        {
            Console.WriteLine(result);
        }
        Console.Read();
DateTime dt=DateTime.Now;
列表日期时间=新列表();
dateTimes.Add(dt);
dateTimes.Add(dt);
dateTimes.Add(dt);
字符串str=dt.ToString();
DateTime myDateTime=DateTime.Parse(str);
var query=从日期时间中的d开始
其中d==myDateTime
选择d;
foreach(查询中的var结果)
{
控制台写入线(结果);
}
Console.Read();

原因是ToString方法略微截断了实际时间,因此返回到另一个方向时结果不一样

例如,将第一行替换为

DateTime dt = new DateTime(2009,10,29,16,35,56); 

您将看到发生了什么。

当您需要在类型之间切换时,我建议不要如此频繁地使用ToString(),更好的方法是使用自定义对象,至少使用专门版本的方法进行比较,如CompareTo

试试这个

DateTime dt=DateTime.Now; 列表日期时间=新列表(); dateTimes.Add(dt); dateTimes.Add(dt); dateTimes.Add(dt); 字符串str=dt.ToString(); DateTime myDateTime=DateTime.Parse(str)

问候,

乌斯曼·阿夫扎尔

我已经解决了这个问题 解决方案不是将时间戳以datetime格式保存在字符串instead中,您应该将datetime对象转换为其对应的记号,并将该记号存储在字符串变量和word之后,以便让date对象使用以下代码行 DateTime myDateTime=新的日期时间(int64.Parse(strDateTimeTicks)); 这将返回确切的datetime对象

    var query = from d in dateTimes
                where d.CompareTo(myDateTime) == 1
                select d;
    foreach (var result in query)
    {
        Console.WriteLine(result);
    }
    Console.Read();