如何在执行以下查询时忽略NULL和空字符串匹配?
var tMisMatchList = lstExchgMatch.Any(o =>
o.MulDivFlg != lstExchgMatch[0].MulDivFlg);
例如,列表中包含以下数据
[0] = MulDivFlg = ""; // 1st element in the list whose multdivflag value is ""
[1] = MulDivFlg = null; // 2nd element in the list whose multdivflag value is null
[2] = MulDivFlg = null;
[3] = MulDivFlg = "";
在这种情况下,我的上述查询返回true。自""和NULL不匹配已发生。但我的期望是忽略null和""比较检查。它只会执行不可空和非空字符串匹配。它应该忽略null和""的存在。并将两者视为平等
以上查询返回false,因为它认为null不等于""。 但我希望它返回true并考虑null和""当字符串为空或""。
时,等于或忽略答案 0 :(得分:3)
您可以在&& (string.IsNullOrEmpty(o.MulDivFlg) != string.IsNullOrEmpty(lstExchgMatch[0].MulDivFlg))
lambda表达式中添加Any
条件:
var tMisMatchList = lstExchgMatch.Any(o => o.MulDivFlg != lstExchgMatch[0].MulDivFlg &&
(string.IsNullOrEmpty(o.MulDivFlg) != string.IsNullOrEmpty(lstExchgMatch[0].MulDivFlg)));