c# Lambda 表达式

OR

Expression<Func<Inventory, bool>> expression = c => 1 == 1;
Expression<Func<Inventory, bool>> expression1 = c => cnPlants.Contains(c.Plant) && (c.StorageLocation == "4000" || c.StorageLocation == "2400");
Expression<Func<Inventory, bool>> expression2 = c => c.Plant == "CN16" && (c.StorageLocation == "4000" || c.StorageLocation == "2400" || c.StorageLocation == "4001");
Expression<Func<Inventory, bool>> expression3 = c => othersPlants.Contains(c.Plant);

if (cnPlants.Any())
{
    expression = expression1;
}
if (hfPlant)
{
    expression = Expression.Lambda<Func<Inventory, bool>>(Expression.Or(expression.Body, expression2.Body), expression.Parameters);
}
if (othersPlants.Any())
{
    expression = Expression.Lambda<Func<Inventory, bool>>(Expression.Or(expression.Body, expression3.Body), expression.Parameters);
}
query = query.Where(expression);
posted @   暖暖De幸福  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示