c# - Linq multiple where query with or operator

标签 c# linq linq-to-sql

我有一个 List<string> filterCriteria其中包含一个或多个关键字,用于根据客户端的用户选择在我的数据库中搜索列。

我遇到的问题是我不太确定如何构建我的 linq to sql 语句,因为它可能没有“或”运算符,也可能有多个 (10+)。

这是我的原始查询

var originalQuery = (from p in productContext.Products
                         select p);

然后根据列表,我需要通过我的 List<string> filterCriteria 中的词查询“originalQuery”使用或运算符。

例如

    originalQuery = originalQuery.Where(p => p.ProductRange == "criteria1" || 
    p.ProductRange == "criteria2");

等等……

最佳答案

你可以这样做:

originalQuery = originalQuery.Where(p => filterCriteria.Contains(p.ProductRange));

这样,您将获得 originalQuery 中的所有项目,这些项目具有 ProductRange 的选定值之一。

关于c# - Linq multiple where query with or operator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12579386/

相关文章:

c# - 仅提取某些索引

C# 在 Queryable 中使用 Linq

c# - 是否将 LINQ 上下文存储为请求变量?

c# - 使用 Entity 框架时对业务逻辑放在哪里的困惑

c# - 将选中的 Form1.checkBoxes 导出到 Form2.listBox

c# - 如果我在 c# 中注册一个事件,而它正在调度,我是否保证在该调度期间不会再次被调用?

c# - 将 C++ 对象传递给 C#

c# - 为什么 Select() 不将 IEnumerable<dynamic> 转换为 IEnumerable<StrongType>?

c# - 为 FX Cop 生成代码属性

c# - DotNet HighCharts ,用查询结果填充饼图