如果选中了 chkAus 复选框:
if (chkAus.Checked)
{
vAdvanceSearchResults = (from t in vAdvanceSearchResults
join imp in _bDataContext.Imprints on t.ImprintID equals imp.ID
join cc in _bDataContext.CountryCodes on imp.CountryID equals cc.ID
where cc.Code.Contains("AU")
select t).Distinct();**
}
如果检查了 chkAus 和 chkNz
if (chkNz.Checked && chkAus.Checked)
{
vAdvanceSearchResults = (from t in vAdvanceSearchResults
join imp in _bDataContext.Imprints on t.ImprintID equals imp.ID
join cc in _bDataContext.CountryCodes on imp.CountryID equals cc.ID
where cc.Code.Contains("AU") || cc.Code.Contains("NZ")
select t).Distinct();
}
当选中复选框时,linq 查询的条件会发生变化。
where cc.Code.Contains("AU") || cc.Code.Contains("NZ")
我有近 10 个复选框,但不知道如何编写这么多条件。 请提供任何帮助。
例如,如果有 chkUS : 那么与 chkAus,chkNz,chkUS 复选框的组合 linq 查询将会改变。
where cc.Code.Contains("AU") || cc.Code.Contains("NZ") || cc.Code.Contains("US")
最佳答案
将它们全部放入列表中,然后执行 if list.contains(cc.Code)
var a = new List<string>(){"AU","NZ","US"};
var linq = (from t in vAdvanceSearchResults
join imp in _bDataContext.Imprints on t.ImprintID equals imp.ID
join cc in _bDataContext.CountryCodes on imp.CountryID equals cc.ID
where a.Contains(cc.Code)
select t).Distinct();
关于c# - 带有复选框 where 条件组合的 linq to sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250397/