首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在LINQ查询“where”语句中实现条件“if”语句

在LINQ查询“where”语句中实现条件“if”语句
EN

Stack Overflow用户
提问于 2010-09-21 21:46:39
回答 4查看 42K关注 0票数 16

我正在尝试找出一种在我的数据模型中查询对象的方法,并且只包含那些不为空的参数。如下所示:

代码语言:javascript
复制
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;
}

由于小部件表可能会变得非常大,因此我希望避免这样做:

代码语言:javascript
复制
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 => w.condition1 == cond1).ToList();

    if(cond2 != null)
        widgets = widgets.Where(w => w.condition2 == cond2).ToList();

    if(cond3 != null)
        widgets = widgets.Where(w => w.condition3 == cond3).ToList();

    return widgets;
}

我已经看了几个示例,但没有真正看到任何与我需要做的事情相匹配的东西。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3760935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档