linq中所有参数的组合

时间:2014-12-10 08:25:40

标签: c# linq if-statement optimization

我有以下方法,我需要从数据库中获取记录,其中所有/任何一个/任何参数组合等于true

public IQueryable<Entity> GetMethod(bool param1, bool param2, bool param3, bool param4, bool param5, bool param6, bool param7)
{
     //some logic here
}

我想使用嵌套ifswitch

的替代方法

如果有人可以帮助我。谢谢

1 个答案:

答案 0 :(得分:0)

你可能正在寻找这个;

public IQueryable<Entity> GetMethod(params bool[] parameters)
{        
     bool anyIsTrue = parameters.Any(p => p); //.Any() will do, but just for clarification
     bool anyIsFalse = pramaters.Any(p => !p);

     bool allAreTrue = parameters.All(p => p);
     bool allAreFalse = parameters.All(p => !p);

     //rest of logic
}