我需要从列表中选择下一个可用日期(如果存在)。例如,如果我有一个包含三个日期的列表,即2015年12月12日,2016年3月3日和2016年4月25日,今天是2016年1月25日。我如何才能只恢复到今天的日期?计算该无序列表,我必须检索当前日期旁边的记录。
谢谢
根据评论,这应该为您工作:
List<DateTime> dt;
dt.Sort((a, b) => a.CompareTo(b)); // If your list isnt sorted.
var greaterThanNow = dt.SkipWhile(x => x <= DateTime.Now).First();
您说过这给了您最后一个要素(您认为这是不正确的)。因此,这是一个完整的示例:
List<DateTime> dt = new List<DateTime>()
{
new DateTime(2016, 01, 20),
new DateTime(2016, 02, 10)
};
dt.Sort((a, b) => a.CompareTo(b)); // If your list isnt sorted.
var greaterThanNow = dt.SkipWhile(x => x <= DateTime.Now).First();
这将返回10.02.2016 00:00:00
。
List<DateTime> dt = new List<DateTime>()
{
new DateTime(2016, 01, 20),
new DateTime(2016, 01, 05)
};
dt.Sort((a, b) => a.CompareTo(b)); // If your list isnt sorted.
var greaterThanNow = dt.SkipWhile(x => x <= DateTime.Now).First();
这会给你InvalidOperationException
。
List<DateTime> dt = new List<DateTime>()
{
new DateTime(2016, 01, 20),
new DateTime(2016, 01, 05)
};
dt.Sort((a, b) => a.CompareTo(b)); // If your list isnt sorted.
var greaterThanNow = dt.SkipWhile(x => x <= DateTime.Now).FirstOrDefault();
这将返回01.01.0001 00:00:00
。
我想这应该足以继续工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句