在日期时间列表中查找最近的日期
Finding closest date in a datetime list
我一直在使用此代码在列表中查找输入日期之前的最近日期。但是我最近发现了一个错误,当输入日期与列表中的第一个日期相同时,代码会崩溃。
allDates 是一个日期列表,例如。 2015 年 1 月 1 日、2015 年 5 月 1 日、2015 年 10 月 1 日
inputDate 是用户 selects
的日期
var closestDate = allDates.Where(x => x < inputDate).DefaultIfEmpty().Max();
当我尝试 select 列出列表中的第一个日期时,例如 1/1/2015 最近的日期是空的
现在如果我 select 列表中的日期,例如,如果列表包含 5/1/2015 并且我 select 5/1/2015,它不会 select 5/1/2015 但 select 是列表中较早的日期,现在我做了一个肮脏的解决方法,将列表日期中的所有日期减少 1
要解决第二个问题,请使用 <=
而不是 <a
。
var closestDate = allDates
.Where(x => x <= inputDate)
.DefaultIfEmpty()
.Max();
第一期会不会无效inputDate
?
我一直在使用此代码在列表中查找输入日期之前的最近日期。但是我最近发现了一个错误,当输入日期与列表中的第一个日期相同时,代码会崩溃。
allDates 是一个日期列表,例如。 2015 年 1 月 1 日、2015 年 5 月 1 日、2015 年 10 月 1 日
inputDate 是用户 selects
的日期var closestDate = allDates.Where(x => x < inputDate).DefaultIfEmpty().Max();
当我尝试 select 列出列表中的第一个日期时,例如 1/1/2015 最近的日期是空的
现在如果我 select 列表中的日期,例如,如果列表包含 5/1/2015 并且我 select 5/1/2015,它不会 select 5/1/2015 但 select 是列表中较早的日期,现在我做了一个肮脏的解决方法,将列表日期中的所有日期减少 1
要解决第二个问题,请使用 <=
而不是 <a
。
var closestDate = allDates
.Where(x => x <= inputDate)
.DefaultIfEmpty()
.Max();
第一期会不会无效inputDate
?