我有一个连接两个表的 LINQ 表达式。我想有条件地检查另一个 bool 值:(下面 *********
之间的通知文本)
bool status = testfunc();
var List =
from t in Houses
join k in Tbl_HouseOwner on t.HouseCode equals k.HouseCode
where k.ReqCode== t.ReqCode
*********** if (status) { where k.Name.Contains(Name) } **********
select new
{
...
name = k.Name,
...
};
最佳答案
您可以使用status
来屏蔽条件,如下所示:
where k.ReqCode == t.ReqCode && (!status || k.Name.Contains(Name))
如果status
为false
,OR ||
会立即成功,AND &&
会为真(假设我们必须评估 OR ||
,AND &&
的左侧必须为真)。另一方面,如果 status
为 true
,则需要评估 k.Name.Contains(Name)
才能完成评估条件。
关于c# - Linq 表达式中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11406463/