C# 在c中从更接近今天的列表中获取下一个日期#

C# 在c中从更接近今天的列表中获取下一个日期#,c#,wpf,list,date,C#,Wpf,List,Date,我需要从列表中选择下一个可用日期(如果存在)。 例如,如果我有一个包含三个日期的列表,即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 greaterThanN

我需要从列表中选择下一个可用日期(如果存在)。 例如,如果我有一个包含三个日期的列表,即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, 01, 05)
};
dt.Sort((a, b) => a.CompareTo(b)); // If your list isnt sorted.
var greaterThanNow = dt.SkipWhile(x => x <= DateTime.Now).FirstOrDefault();
List dt=新列表()
{
新日期时间(2016年1月20日),
新日期时间(2016年1月5日)
};
dt.Sort((a,b)=>a.CompareTo(b));//如果您的列表未排序。

var greaterThanNow=dt.SkipWhile(x=>x所以在本例中,您希望得到2016年3月3日?是的,在本例中,2016年3月3日将数学写在纸上,然后写在代码中。最简单的方法是根据ABS(从现在开始的毫秒数)对列表进行排序,例如,以第一个结果为例。到目前为止,你尝试过什么吗?A显示基本设置和你已经做了多少会有很大帮助。提示:如果你对列表进行排序,然后在今天之前筛选任何内容,这将非常简单…你能阅读并分享你的研究吗?等等。我尝试过这个解决方案,但我得到了2016年3月4日的结果,列表的最后一个元素是排序函数比OrderBy好吗?例如,
var greaterThanNow=dt.OrderBy(d=>d).SkipWhile(x=>x@LordJam:不符合主题,请看这里:
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();
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();