c# - 如果参数为空则排除条件

标签 c# entity-framework linq lambda

我正在使用 LINQ 和 Lambda 获取数据,使用此查询有 2 个条件。是否可以在没有 if else 条件的情况下编写此逻辑 -

public List<Pallet> GetPallet(string palletID, string locationID)
{
    List<Pallet> data = new List<Pallet>();

    if (locationID != null)
        data = data.Where(x => x.PalletID == palletID && x.LocationID == locationID).ToList();
    else
        data = data.Where(x => x.PalletID == palletID).ToList();

    return data;
}

最佳答案

当然是:

public List<Pallet> GetPallet(string palletID, string locationID)
{
    List<Pallet> data = new List<Pallet>();
    data = data.Where(x => x.PalletID == palletID && (locationID == null || x.LocationID == locationID)).ToList();

    return data;
}

关于c# - 如果参数为空则排除条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51204583/

相关文章:

c# - 从 Threadpool 工作线程启动进程(并在需要时等待)

c# - 使用 ajax 动态加载用户控件并具有 jquery 文档就绪功能

c# - 使用 LINQ 按层次顺序显示数据

c# - 将多个导航属性配置到同一个表时出错

c# - 使用 LINQ 将日期/周列表拆分为 a 和 b 周

c# - 计算动态匿名对象中的对象 (C#)

c# - ef-core 嵌套表聚合函数给出 "NavigationExpandingExpressionVisitor failed"

c# - 使用 PLINQ 是否有可能提高效率?

c# - LINQ to Entities 对具有嵌套对象的 Union 的空引用

c# - 为什么 Lookup 在 C# 中是不可变的?