bool值比较的lambda表达式的正确语法是什么?
下面的示例显示了rsp.InputOutput
这是一个bool值。但是,当我尝试执行此操作时,我收到编译器错误。我知道它的东西很小,任何帮助都赞赏。
在此示例中,我想选择InputOutput
值为true
的所有规则集参数。
validRuleSetParameters.SelectMany(rsp => rsp.InputOutput == true)
感谢 尼尔
答案 0 :(得分:5)
我认为你只是在寻找Where
条款:
var ruleSetPars = validRuleSetParameters.Where(rsp => rsp.InputOutput);
SelectMany
完全不同;如果要将序列的每个成员投影到另一个序列,然后将生成的序列序列展平为单个序列,则使用它。
请注意,如果InputOutput
是布尔属性,rsp.InputOutput
已经布尔表达式。因此,使用等于运算符生成另一个布尔表达式(通过将其值与文字bool true
进行比较)是不必要的。
答案 1 :(得分:2)
你想:
validRuleSetParameters.Where(rsp => rsp.InputOutput)
编辑: 哪里可以找到lambda为真的所有条目。 SelectMany用于展平IEnumebles的序列。 编辑2:删除== true
答案 2 :(得分:2)
validRuleSetParameters.Where(rsp => rsp.InputOutput);