如何找到从数组到DateTime.Now的最接近的更长时间

时间:2018-04-02 18:47:13

标签: c# linq parsing datetime

我正试图找到最接近当前时间的更长时间。 这是我的代码:

var busTimes = new string[]
    {
        "15:00",
        "16:00",
        "17:00",
        "18:00",
        "19:00",
        "20:00",
        "21:00"
        }
        .Select(x => DateTime.Parse(x))
        .ToList();

var now = DateTime.Now.TimeOfDay;

var closestTime = (from x in busTimes
                   where x.busTimes.TimeOfDay > now
                   orderby x.busTimes.TimeOfDay ascending
                   select x).First(); 

但是我收到了这个错误:

  

错误CS1061'日期时间'不包含' busTimes'的定义和       没有扩展方法' busTimes'接受类型' DateTime'的第一个参数。       可以找到(你错过了使用指令或程序集引用吗?)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

xDateTime,与错误消息一样,上面没有busTimes属性。

var closestTime = (from x in busTimes
    where x.TimeOfDay > now
    orderby x.TimeOfDay ascending
    select x).First(); 

答案 1 :(得分:0)

您的查询应该是:

var closestTime = (from x in busTimes
        where x.TimeOfDay > now
        orderby x.TimeOfDay ascending
        select x).First(); 

由于x标识符代表DateTimeDateTime结构没有'busTimes'属性。