我一直在使用此代码在输入日期之前的列表中查找最接近的日期。但是,当输入日期与列表中的第一个日期相同时,我最近发现一个错误导致代码崩溃。
allDates是日期列表,例如。 2015年1月1日,2015年5月1日,2015年10月1日
inputDate是用户选择的日期
var closestDate = allDates.Where(x => x < inputDate).DefaultIfEmpty().Max();
当我尝试选择列表中的第一个日期时,例如,2015年1月1日,最近的日期为空
此外,如果我在列表中选择一个日期,例如,如果列表包含2015年5月1日并且我选择2015年5月1日,则它不会选择2015年5月1日,而是选择之前的日期。列表,现在我通过将列表日期中的所有日期减少1
来做一个肮脏的解决方法答案 0 :(得分:0)
要解决第二个问题,请使用<=
代替<a
。
var closestDate = allDates
.Where(x => x <= inputDate)
.DefaultIfEmpty()
.Max();
第一个问题可能是无效的inputDate
吗?