c# - 使用 winform checkbox 进行 linq 查询

标签 c# winforms entity-framework linq checkbox

希望我以正确的方式提出这个问题。

我正在尝试确定使用复选框更改从我的 linq 查询返回的内容的最有效方法,而无需为每个可能的组合编写代码。

例如,我的 winform 上有三个复选框,代表我要查询的三列

[ ] 年

[ ] 制作

[ ] 型号

我正在使用 linq 语句通过 EF 确定年份品牌和型号的不同组合

var uniquecombos = cb.MakeModelYear.Where(i => i.Year != null && i.Make != null && i.Model != null).Distinct().ToList();

我想做的是使用我的 winform 上的复选框来驱动我在查询中包含哪些字段。

所以

[x] 年

[x] 制作

[ ] 型号

会产生

var uniquecombos = cb.MakeModelYear.Where(i => i.Year != null && i.Make != null).Distinct().ToList();

有没有一种好方法可以修改查询的输入,而不必通过 if 语句考虑复选框的每个组合?

提前致谢!

最佳答案

由于您有单独的属性,您仍然需要检查每个 - 但您可以同时考虑每个复选框组合:

.Where(i => (
             (!cbxYear.Checked  || i.Year != null) && 
             (!cbxMake.Checked  || i.Make != null) && 
             (!cbxModel.Checked || i.Model != null)
            )

关于c# - 使用 winform checkbox 进行 linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38462981/

相关文章:

c# - 隐藏面板应该强制下面的控件向上移动并调整表单大小

asp.net-mvc - 数据模型需要两个属性之一

entity-framework - 使用 Code First 迁移的 Entity Framework 的唯一约束

entity-framework - 没有公钥的 EF 实体

c# - 如何对 NHibernate 拦截器进行单元测试

c# - WebApi 和 OAuth 的正确登录流程

c# - 验证规则未使用 2 个验证规则正确更新

c# - 如何在 C# 中的 Winform 中嵌入 R 图?

c# - FTP 连接失败 "Unable to connect to the remote server"

windows - 在 Win32 应用程序中使用 Windows 窗体