【问题标题】:Checking for AND OR condition between two checks检查两次检查之间的 AND OR 条件
【发布时间】:2014-04-04 05:52:52
【问题描述】:

您好,我有以下 linq 语句

var list=(from c in db.sales 
            where c.id ==id && || c.name==name
            select new model
             {
                 //.....

              });

我的 where 子句有问题。

基本上,我可以获得 id 和 name 值,或者其中任何一个都可以为空。因此,我尝试将 where 子句与 AND OR 一起使用,这意味着两个条件都可能是正确的,也可能是其中一个。

有了这个 where 语法,我得到了智能错误。请告诉我如何在 where 子句中使用 AND OR 检查。

【问题讨论】:

  • intelligence error 是什么意思?
  • 很可能是智能感知错误。

标签: c# sql .net oop lambda


【解决方案1】:

两个条件都可能是对的,也可能是其中一个

你只是需要或不需要和

var list=(from c in db.sales 
     where c.id ==id ||  c.name==name
     select new model
     {
             //.....

     });

The || (or Operator)

条件或运算符 (||) 对其布尔值执行逻辑或 操作数。如果第一个操作数的计算结果为真,则第二个操作数 不评价。如果第一个操作数的计算结果为假,则第二个 运算符确定整个 OR 表达式是否计算为 真假,MSDN

【讨论】:

    【解决方案2】:

    听起来你想要的只是一个普通的 OR:

    where c.id == id || c.name == name
    

    如果c.id == id 为真,如果c.name == name 为真,或者两者都为真,这将评估为真。

    【讨论】:

      【解决方案3】:

      我认为您的意思是 IntelliSense 错误。这很明显,因为&& || 不是有效的 C# 语法。

      根据您的描述,我认为您只需要 OR 操作。

      尝试将 && || 更改为 ||

      【讨论】:

        猜你喜欢
        • 2012-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多