Linq查询从两个日期之间获取所有值

时间:2013-11-13 11:27:30

标签: c# asp.net-mvc linq

是否可以使用linq创建查询以从用作分隔符的两个日期之间获取一系列值?

离。

获取在12/12/12和12/12/13之间具有Date列值的所有实体。

我只是在寻找暗示或方法。

3 个答案:

答案 0 :(得分:7)

当然可以,没有“介于”之间的语法,如果这是你所得到的,但这样做比较简单。

list.Where(x => x.Date >= StartDate && x.Date <= EndDate);

如果想要更好的可读性,甚至可以为DateTime编写扩展方法,即

public static class DateTimeHelpers
{
    public static bool Between(this DateTime dateTime, DateTime startDate, DateTime endDate)
    {
        return dateTime >= startDate && dateTime <= endDate;
    }
}
...
list.Where(x => x.Date.Between(StartDate, EndDate));

答案 1 :(得分:1)

var stuffBetweenDates = ListOfStuff.Where(c => c.Date >= 12/12/12 && c.Date <= 12/12/13);

我认为这些方面的东西。显然,我把12/12/12和12/12/13放在哪里,你需要在这些地方放置认可的日期类型。

答案 2 :(得分:1)

public IEnumerable<DateTime> test(DateTime dt, DateTime dt2)
{
    // check if dt is smaller (or the same) as dt2 and code this out or throw error

    // replace dates with actual class / code
    List<DateTime> dates = new List<DateTime>();

    return dates.Where(d => d >= dt && d <= dt2);
}