【问题标题】:LINQ query where boolean value is true or false布尔值为真或假的 LINQ 查询
【发布时间】:2011-10-16 21:41:04
【问题描述】:

如何在 LINQ 查询中将布尔值与真假进行比较?

如果 hideCompleted 为真,我想显示 IsCompleted 为假的值 如果 hideCompleted 为假,我想显示 IsCompleted 为真或假的值

例子:

(t1.IsCompleted ?? false == (hideCompleted == true ? false : (true || false)))

【问题讨论】:

    标签: asp.net linq asp.net-mvc-3 linq-to-sql


    【解决方案1】:

    为了确保我正确理解你,如果 hideCompleted 为假,你不在乎 IsCompleted 的值是什么?如果是这样……

    !(hideCompleted && t1.IsCompleted)
    

    【讨论】:

    • 虽然答案是直观且逻辑正确的,但我在将其与 linq to 实体一起使用时遇到了问题。 Max Zerbini 的回答对我有用。
    【解决方案2】:

    基于hideCompleted 为真构建您的查询,类似于此方法:

    var query = dc.SomeTable;
    if (hideCompleted)
    {
        query = query.Where(t1 => !t1.IsCompleted);
    }
    

    这样,当hideCompleted 为真时,您过滤t1.IsCompleted 为假。当hideCompleted 为假时,无论t1.IsCompleted 的值如何,您的原始查询都会获取所有结果。

    【讨论】:

      【解决方案3】:

      你可以使用这个条件

      where (hideCompleted==true && t1.IsCompleted==false) || (hideCompleted==false)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-29
        • 2020-01-05
        • 1970-01-01
        • 2014-12-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-16
        • 1970-01-01
        相关资源
        最近更新 更多