在C#中获取最接近今天的日期

时间:2015-01-19 01:01:21

标签: c#

我有一个包含事件日期的C#列表。我想知道如何使用lamdas来获取订购的最新活动。

这是我现有的事件类代码。

    /// <summary>
/// Class that represents an Info Session. 
/// </summary>
public class InfoSessions {
    public String Place { get; set; }
    public DateTime Date { get; set; }
    public InfoSessions(String place, DateTime date)
    {
        Place = place;
        Date = date;
    }
}

这是我目前订购活动的目的。我不想看到过去的事件。

List<InfoSessions> sessions = new List<InfoSessions>();
sessions.Add(new InfoSessions("Melbourne", new DateTime(2015,03,24)));
sessions.Add(new InfoSessions("HongKong", new DateTime(2015, 02, 14)));
sessions.Add(new InfoSessions("Singapore", new DateTime(2015, 04, 14)));
sessions.Add(new InfoSessions("Sydney", new DateTime(2015, 05, 18)));
sessions.Add(new InfoSessions("Aukland", new DateTime(2015, 08, 18)));

List<InfoSessions> orderSessions = sessions.OrderByDescending(x => x.Date).ToList();
InfoSessionGrid.DataSource = orderSessions;
InfoSessionGrid.DataBind();

我喜欢按日期立即订购事件。

1 个答案:

答案 0 :(得分:0)

即将结束,您只需添加Where()谓词即可在指定日期之前消除任何内容。检查此示例:

class Program
{
    static void Main(string[] args)
    {
        var sessions = new List<InfoSessions>();
        sessions.Add(new InfoSessions("South Pole", new DateTime(2015, 01, 01)));
        sessions.Add(new InfoSessions("Melbourne", new DateTime(2015, 03, 24)));
        sessions.Add(new InfoSessions("HongKong", new DateTime(2015, 02, 14)));
        sessions.Add(new InfoSessions("Singapore", new DateTime(2015, 04, 14)));
        sessions.Add(new InfoSessions("Sydney", new DateTime(2015, 05, 18)));
        sessions.Add(new InfoSessions("Auckland", new DateTime(2015, 08, 18)));

        var orderSessions = sessions.Where(x => x.Date > DateTime.Now)
                                    .OrderByDescending(x => x.Date)
                                    .ToList();

        orderSessions.ForEach(x=> Console.WriteLine("Location: {0}, Date: {1}", x.Place, x.Date));

        Console.ReadKey();
    }
}

public class InfoSessions
{
    public String Place { get; set; }
    public DateTime Date { get; set; }
    public InfoSessions(String place, DateTime date)
    {
        Place = place;
        Date = date;
    }
}

我已经排除了之前发生的任何事情,因此南极会议没有被列入名单。

请注意,您拼错Auckland错误(抱歉,这是我的家乡,所以我无法放手),您可能希望OrderBy符合您立即订购的标准按日期发生