我有这个运行良好的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/

10-10 15:28