2014-03-18 26 views
0

給定包含開始和結束時間搜索的對象列表,以查看輸入日期時間開始和結束是否落入列表中任何元素的時間範圍內。開放時間段的日期時間搜索列表

即。 8:30-9:30,10:00-12:00,12:30-1:00,1:30-2:30,2:30-4:00

我玩過: testPlans.Where(plan => plan.p_startDateTime> = startDate || plan.p_endDateTime < = endDate)

但我很難過。

+1

您是否嘗試過使用'&&而不是'||'? – tinstaafl

回答

0

這似乎是工作。總是歡迎改進。

if(testPlans.Where(plan => startDate >= plan.p_startDateTime && endDate <= plan.p_endDateTime).Count() > 0) 
      { 
       return false; 
      } 
      else 
      { 
       if(testPlans.Where(plan => startDate > plan.p_startDateTime && startDate < plan.p_endDateTime).Count() > 0) 
       { 
        return false; 
       } 
       else 
       { 
        if(testPlans.Where(plan => endDate > plan.p_startDateTime && endDate < plan.p_endDateTime).Count() > 0) 
        { 
         return false; 
        } 
        else 
        { 
         return true; 
        } 
       } 
      } 
+0

'testPlans.Where(ef => ef.p_endDateTime> startDate).All(fe => fe.p_startDateTime> endDate)'有點短。 – Ceilingfish