在通用列表中筛选日期

时间:2011-09-18 23:31:57

标签: c# .net

我的课程定义如下。

public class Risk
{
   public DateTime RiskDate { get; set;}
   public string RiskStatus { get; set;}    
}

我有一份风险清单如下

RiskDate RiskStatus

10/10/2001高

15/10/2001低

21/10/2001高

28/10/2001低

05/11/2001高

08/11/2001低

我想从列表中找到给定日期的日期范围。例如,如果我的输入日期是17/10/2001,那么我想从列表中拉出15/10/2001和21/10/2001。如果我的输入日期与列表完全匹配,例如28/10/2001,那么我想从列表中仅提取该日期。

我希望有人可以就此提出建议。

谢谢

1 个答案:

答案 0 :(得分:0)

这有效:

var lower =
    from d in dates
    where d <= inputDate
    orderby d descending
    select d;

var upper =
    from d in dates
    where d >= inputDate
    orderby d
    select d;

var range = lower.Take(1)
    .Concat(upper.Take(1))
    .Distinct();