我有一个gridview下拉框中的每个标题进行过滤。加载时,每个过滤器都会从其列中加载不同的值。在运行时,我添加“ALL”以允许用户从该字段中选择全部。我试图动态构建linq语句来忽略该字段,如果下拉框设置为“ALL”。这可能吗?我想看看我能否在一个声明中做到这一点。下面的例子只显示了2个下拉框,但我的实际案例已多达5个。Linq动态添加条件的地方
如果我选择使用if语句,我最终得到意大利面代码。
DropDownList drpOwners = this.grdOtherQuotes.HeaderRow.FindControl("drpOwners") as DropDownList;
DropDownList drpCompanyName = this.grdOtherQuotes.HeaderRow.FindControl("drpCompanyName") as DropDownList;
var filteredList = (from x in allQuotes
where (drpOwners.SelectedValue != ALL) ? x.SalesRepFullName == drpOwners.SelectedValue:true
&& drpCompanyName.SelectedValue != ALL ? x.CompanyName == drpCompanyName.SelectedValue: true
select x);
你试过linqkit? http://www.albahari.com/nutshell/linqkit.aspx – Parwej