2012-06-14 1 views
1

Я хочу, чтобы применить условие, после того, как я прошел еще одно условие, как это:Условный Lambda

List<Entity> GetByCondition() 
{ 
    If(dateConditionEnabled) 
    { 
     Repository.Get(i=>i.start<=datetime.Now && i.EndDate<=DateTime.Now); 
    } 
    else 
    { 
     Repository.Get(); 
    } 
} 

Я хочу, чтобы применить «Если» состояние, в лямбда-я использовал в Получ.

Любая идея?

-Regards

ответ

3

Является Get() эквивалентно Get(i => true)? В этом случае вы можете использовать:

List<Entity> GetByCondition() 
{ 
     return Repository.Get(!dateConditionEnabled || i=>i.start<=datetime.Now && i.EndDate<=DateTime.Now); 
} 
+0

Спасибо, Генрик, он блестяще работает. – PickleRick

2

Почему не

List<Entity> GetByCondition() 
{ 
     return Repository.Get(i=>!i.dateConditionEnabled || i.start<=datetime.Now && i.EndDate<=DateTime.Now); 
} 

?

+0

Спасибо, Гамлет, Хенрик ответил первым. но первая часть,! i.dateConditionEnabled вашего сообщения верна. – PickleRick

+0

Является ли dateConditionEnabled членом члена репозитория или является частью класса, содержащего GetByCondition()? Если часть класса, то i =>! I.dateConditionEnabled, выдаст ошибку. – AlanT

+0

dateConditionEnabled - свойство моего объекта, но нет, здесь нет ошибки :) – PickleRick