我正在 winforms 中开发 .net 4.6(这里的代码来自测试控制台应用程序)
有一次我有一张清单DateTime
我需要弄清楚这个列表是否包含特定日期。
为此我正在尝试使用Any()
在名单上。
即使列表确实包含所需的日期,Any()
回报false
only.
以下是示例代码,也具有相同的行为。因此,如果我能对此代码有任何想法,我想它也会对我的真实代码有所帮助。
List<DateTime> dateTimeList = new List<DateTime>();
DateTime dateNow = DateTime.Now;
DateTime date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, dateNow.Hour, dateNow.Minute, 00);
date = date.AddMinutes(-10);
while (date < dateNow.AddMinutes(10))
{
dateTimeList.Add(date);
date = date.AddMinutes(1);
}
dateNow = dateNow.AddSeconds(-dateNow.Second);
dateNow = dateNow.AddMilliseconds(-dateNow.Millisecond);
foreach (DateTime dateInList in dateTimeList)
Console.WriteLine("date list List:" + dateInList.ToString("ddMMyyyy hh:mm:ss:fffz") + " - VS - desired date:" + dateNow.ToString("ddMMyyyy hh:mm:ss:fffz"));
if (dateTimeList.Any(x => x == dateNow))
Console.WriteLine("date found");
else
Console.WriteLine("date Not found");
if (dateTimeList.Any(x => x.ToString("ddMMyyyy hh:mm:ss:fffz") == dateNow.ToString("ddMMyyyy hh:mm:ss:fffz")))
Console.WriteLine("date string matched");
else
Console.WriteLine("date string didn't match");
output:
计算机编程中有一句话“选择不会被破坏”。这意味着当一些基本的、常用的、经过严格测试的软件似乎被破坏时,问题是你误诊了问题,而不是工具被破坏了。
Any
工作得很好。
错误在于您在一处正确地舍入日期而在另一处错误地舍入日期,并且错误舍入的日期不等于正确舍入的日期。使用Ticks
日期上的属性,看看为什么你的舍入技术之一是好的,而其中之一是完全错误的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)