我有这个运行良好的linq查询(尽管它可能写得更好,请注意,如果您发现一些问题,请说)
var qry = BenefitCodes
.Where(b => b.BenInterest != 'E'
&& (b.BenProductLine == CoverageProductLine || b.BenProductLine == null) )
.Select(b => b)
.OrderBy(b => b.BenDesc);
一项新的要求出台,以排除两个BenCodes(1001、1009),BenCodes只是SQL表中的另一列。
我是否应该使用“ .Contains”的某些变体,我必须做!Contains之类的。谁能指出我正确的方向?
谢谢,
〜ck在圣地亚哥
最佳答案
是的,下面是解决此问题的一种方法(为简洁起见,为了便于阅读,我排除了查询的其余部分):
var excludedBenCodes = new List<int>() { 1001, 1009 };
var query = BenefitCodes.Where(b => !excludedBenCodes.Contains(b.BenCodes));
我相信这比在where子句中添加
b.BenCodes != 1001 && b.BenCodes != 1009
子句更具可读性和可维护性。关于c# - C#Linq语法帮助-如何排除两个值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1405947/