相关疑难解决方法(0)

在LINQ查询'where'语句中实现条件'if'语句

我试图找出一种在我的数据模型中查询对象的方法,并且只包括那些非空的参数.如下所示:

public List<Widget> GetWidgets(string cond1, string cond2, string cond3)
{
    MyDataContext db = new MyDataContext();
    List<Widget> widgets = (from w in db.Widgets
                            where 
                                ... if cond1 != null w.condition1 == cond1 ...
                                ... if cond2 != null w.condition2 == cond2 ...
                                ... if cond3 != null w.condition3 == cond3 ...
                            select w).ToList();
    return widgets;
}
Run Code Online (Sandbox Code Playgroud)

由于小部件表可能变得非常大,我想避免这样做:

public List<Widget> GetWidgets(string cond1, string cond2, string cond3)
{
    MyDataContext db = new MyDataContext();
    List<Widget> widgets = db.Widgets.ToList();

    if(cond1 != null)
        widgets = widgets.Where(w …
Run Code Online (Sandbox Code Playgroud)

c# linq

15
推荐指数
2
解决办法
4万
查看次数

标签 统计

c# ×1

linq ×1