布尔值上的Lambda表达式

时间:2010-11-17 13:04:08

标签: c# linq lambda boolean

bool值比较的lambda表达式的正确语法是什么?

下面的示例显示了rsp.InputOutput这是一个bool值。但是,当我尝试执行此操作时,我收到编译器错误。我知道它的东西很小,任何帮助都赞赏。

在此示例中,我想选择InputOutput值为true的所有规则集参数。

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

感谢 尼尔

3 个答案:

答案 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);