C# Linq 语法帮助 - 如何排除两个值?

标签 c# linq linq-to-sql

我有一个运行良好的 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# Linq 语法帮助 - 如何排除两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405947/

相关文章:

.net - 如何在 WPF DataGrid 中定义自己的列?

c# - Sonar-CSharp 不分析 .cs 文件

c# - 运行需要 "Security Message"的命令行 (cmd)

c# - LINQ to SQL - 调用内置聚合函数(即 STDEV)

linq - 在 LINQ Lambda 表达式中使用 GroupBy 和 Max

c# - 在 Entity Framework 中编写查询的最佳方式是什么

c# - 使用 Linq to Sql 的插入过程非常慢

c# - 使用 LINQ To SQL 检索新插入的记录 ID

c# - 无法定义两个对象之间的关系

c# - Linq To Sql ManyToMany 更新现有记录