C# 在日期时间列表中查找最近的日期
我一直在使用此代码在输入日期之前的列表中查找最近的日期。然而,我最近发现了一个bug,当输入日期与列表中的第一个日期相同时,代码就会崩溃 allDates是日期列表,例如2015年1月1日、2015年5月1日、2015年10月1日 inputDate是用户选择的日期C# 在日期时间列表中查找最近的日期,c#,asp.net,date,datetime,C#,Asp.net,Date,Datetime,我一直在使用此代码在输入日期之前的列表中查找最近的日期。然而,我最近发现了一个bug,当输入日期与列表中的第一个日期相同时,代码就会崩溃 allDates是日期列表,例如2015年1月1日、2015年5月1日、2015年10月1日 inputDate是用户选择的日期 var closestDate = allDates.Where(x => x < inputDate).DefaultIfEmpty().Max(); var closestDate=allDates.Where(x
var closestDate = allDates.Where(x => x < inputDate).DefaultIfEmpty().Max();
var closestDate=allDates.Where(x=>x
当我尝试在列表中选择第一个日期时,例如2015年1月1日,最近的日期显示为空
同样,现在如果我在列表中选择了一个日期,例如,如果列表包含2015年5月1日,而我选择了2015年5月1日,它不会选择2015年5月1日,而是选择列表中较早的日期,那么现在我做了一个肮脏的变通方法,将列表日期中的所有日期减少1以解决第二个问题。使用
IsallDates
对SQL表进行查询?是inputDate
aDateTime
。您发布的代码中没有任何内容表明正在使用SQL,更不用说清楚它在这里是如何使用的(所有日期的来源allDates
?结果的目的地?)。如果要将默认值DateTime
写入SQL数据库,那么这可能不起作用。有关发布有用问题的建议,请参阅和。请编辑您的问题,以便它提供足够的信息,以便有人提供一个好的答案。确保包含准确的错误信息,包括完整堆栈跟踪。更正,我的意思是最近日期为空。错误代码来自我想插入数据库的时间。您能告诉我5/1/2015
是否代表1月5日或5月1日吗?它是dd/mm/yyyy格式的
var closestDate = allDates
.Where(x => x <= inputDate)
.DefaultIfEmpty()
.Max();