代码之家  ›  专栏  ›  技术社区  ›  Somedeveloper

布尔值上的lambda表达式

  •  0
  • Somedeveloper  · 技术社区  · 14 年前

    对于布尔值比较,lambda表达式的正确语法是什么?

    下面的示例显示 rsp.InputOutput 这是一个布尔值。但是,当我尝试这样做时,会得到一个编译器错误。我知道这有点小,任何帮助都很感激。

    在此示例中,我要选择所有具有 InputOutput 价值 true .

    validRuleSetParameters.SelectMany(rsp => rsp.InputOutput == true)
    

    谢谢 尼尔

    3 回复  |  直到 14 年前
        1
  •  5
  •   Ani    14 年前

    我想你只是在找 Where 条款:

    var ruleSetPars = validRuleSetParameters.Where(rsp => rsp.InputOutput);
    

    SelectMany 非常不同;当您希望将序列的每个成员投影到另一个成员时,使用它 序列 ,然后将生成的序列展平为单个序列。

    请注意,如果 InputOutput 是布尔属性, rsp.InputOutput 已经 布尔表达式。因此,使用相等运算符生成 另一个 布尔表达式(通过将其值与文本bool进行比较 true )是不必要的。

        2
  •  2
  •   Jackson Pope    14 年前

    你想要:

    validRuleSetParameters.Where(rsp => rsp.InputOutput)
    

    编辑: 其中将找到lambda为真的所有条目。selectmany用于展平IEnumerable序列。 编辑2:已删除==true

        3
  •  2
  •   Klaus Byskov Pedersen    14 年前
    validRuleSetParameters.Where(rsp => rsp.InputOutput);