在 linq 查询中按条件过滤

Posted

技术标签:

【中文标题】在 linq 查询中按条件过滤【英文标题】:Filter by criteriums in linq query 【发布时间】:2010-10-28 19:51:14 【问题描述】:

我有例如桌子车

table cars(
producer varchar(30),
model varchar(30),
price integer,
start datetime,
end datetime)

我需要使用标准(基于一个标准,或者两个或全部)从表中返回数据。有没有办法动态创建 linq 问题(只有一个 linq 查询,而不是为所有组合创建不同的 linq 查询)?我可以使用一些默认值,并且搜索总是购买所有,但是当我需要搜索一个或一个都不搜索时,这会降低我的性能。

【问题讨论】:

只是 FWIW,单数是“criterion”,复数是“criteria”。 “标准”是一种自行车比赛(在相对较短的赛道上进行多圈比赛)。 @Jerry Coffin 你现在可以帮忙吗? 也许您可以举例说明您想要什么样的查询以及应该返回什么数据? Conditional Linq Queries的可能重复 【参考方案1】:

简短的回答是肯定的。

您可以从 Dynamic LINQ Where Extension 开始启动并运行某些东西,但它需要一些增强功能来处理 DateTimes。

我使用上面结合循环来处理多个条件:

var q = from c in db.Cars select c;

filters.ForEach (filter =>

   q = q.Where (filter.Field, filter.Value, filter.Comparison);
);

【讨论】:

谢谢 Bender,我会试试这个!

以上是关于在 linq 查询中按条件过滤的主要内容,如果未能解决你的问题,请参考以下文章

在 dplyr 中按组过滤多个条件的条件 IF

在Javascript中按多个条件过滤数组

如何在 Flask SQLAlchemy 中按多个条件进行过滤?

LINQ查询中的C#多个OR条件[重复]

如何有条件地应用 Linq 运算符?

使用 Linq 根据条件过滤对象列表