Linq最有效的方法

Nat*_*Pet 3 c# linq

我需要使用Linq语句如下

      var data = db.tbl1
      .Where(w => clientIds == clientid && w.Source == source);
Run Code Online (Sandbox Code Playgroud)

我有一个下拉列表,我从中得到消息来源.下拉值如下:

All
NewsPaper
Web
Run Code Online (Sandbox Code Playgroud)

事情是NewsPaper和Web是Source的有效值.一切都不是.所有意味着记录可以是NewsPaper或Web.

如果他们选择All,我如何修改w.Source,以便All表示NewsPaper或Web.我可以执行2个单独的查询,如下所示,但不是:

    if(source == "All")
    {
       var data = db.tbl1
      .Where(w => clientIds == clientid);
    }
    else
    {
       var data = db.tbl1
      .Where(w => clientIds == clientid && w.Source == source);
    }
Run Code Online (Sandbox Code Playgroud)

我喜欢在1个查询中执行它,因为我的查询实际上比上面显示的更复杂.

先感谢您

mat*_*mmo 5

试试这个:

var data = db.tbl1
  .Where(w => clientIds == clientid && (source == "All" || w.Source == source));
Run Code Online (Sandbox Code Playgroud)