linq 中的 |(pipe) 运算符?我想知道运算符 (|) 的操作。我想检查不同表中的多个列。在我的场景中,只有单个表包含该特定列的值。
my code:
&& swr.Date_Of_Event.Date < DateTime.Today.Date |
spr.Date_Of_Event.Date < DateTime.Today.Date |
scr.Date_Of_Event.Date < DateTime.Today.Date |
smr.Date_Of_Event.Date < DateTime.Today.Date
在这种情况下,只有一个表将包含日期值,其他表将在各自的列中包含默认值。
上述条件不起作用,采用默认值。
我可以使用什么条件来获得正确的值?
The |
运算符给出的结果与||
运算符,但它不会使结果短路。这意味着即使可以通过仅评估第一个操作数来确定结果,也始终会评估两个操作数。
我认为主要问题是&&
运算符的优先级高于|
运算符(或||
运算符),所以你需要括号:
&& (swr.Date_Of_Event.Date < DateTime.Today.Date |
spr.Date_Of_Event.Date < DateTime.Today.Date |
scr.Date_Of_Event.Date < DateTime.Today.Date |
smr.Date_Of_Event.Date < DateTime.Today.Date)
您可以使用运算符的短路版本,如读取Date
属性没有任何副作用:
&& (swr.Date_Of_Event.Date < DateTime.Today.Date ||
spr.Date_Of_Event.Date < DateTime.Today.Date ||
scr.Date_Of_Event.Date < DateTime.Today.Date ||
smr.Date_Of_Event.Date < DateTime.Today.Date)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)