c# - LINQ Where 语句用 OR 连接

标签 c# .net entity-framework linq

通常,可以在 Queryable 中连接多个“Where”语句,并使用“Where”语句中的表达式之间的 AND 逻辑来过滤结果。

如何使用 OR 逻辑连接“Where”语句? 像这样的东西:

query.OrWhere(t => true).OrWhere(t => false)

我正在尝试通过循环有条件地创建查询。

for (var i = 0; i < 15; i++)
{
   switch(i)
   {
      case 0:
      { 
           if (something happens)
           {
                query = query.OrWhere(t => t.columnDependingOnIndex is something);
           }
           break;
      }
      //and so on ...
   }
}

最佳答案

在一个Where语句中只使用or(||)

query.Where(somePredicate || someOtherPredicate)

另一种方法是使用 .Union -

var q1 = query.Where(somePredicate)
var q2 = query.Where(someOtherPredicate)

var res = q1.Union(q2)

关于c# - LINQ Where 语句用 OR 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27336040/

相关文章:

c# - Entity Framework /Linq 表达式从字符串转换为 int

c# - 从数据库中的对象检索数组或列表

c# - VS远程调试问题

c# - 从内存中播放 wav/mp3

asp.net - Entity Framework 不会在现有数据库上创建身份表

c# - 为 SingleOrDefault Linq 方法定义默认值

c# - 从 IQueryable<ICollection> LINQ 查询中获取 ICollection

c# - 如果 using block 返回,是否会释放 IDisposable?

.net - Node JS setInterval。 TypeError : Cannot read property 'apply' of undefined

c# - 按不同日期排序时选择要列出的值()