2010-11-17 9 views
0

Quelle est la syntaxe correcte pour l'expression lambda pour une comparaison de valeur booléenne?Expression lambda sur booléen

L'exemple ci-dessous montre rsp.InputOutput qui est une valeur booléenne. Cependant, j'obtiens une erreur de compilateur lorsque j'essaie de le faire. Je sais que c'est quelque chose de petit, toute aide appréciée.

Dans cet exemple, je souhaite sélectionner tous les paramètres paramètres ayant une valeur InputOutput de true.

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

grâce Niall

+0

merci les gars. C'est absolument ce que je voulais. Bravo – Somedeveloper

Répondre

5

Je pense que vous êtes à la recherche de la clause Where:

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

SelectMany est tout à fait différent; Il est utilisé lorsque vous souhaitez projeter chaque membre d'une séquence sur une autre séquence, puis aplatir la séquence de séquences résultante en une seule séquence.

Prenez note que si InputOutput est une propriété booléenne, rsp.InputOutput est déjà une expression booléenne. Par conséquent, l'utilisation de l'opérateur d'égalité pour produire une autre expression booléenne (en comparant sa valeur avec le booléen littéral true) est inutile.

2

Vous voulez:

validRuleSetParameters.Where(rsp => rsp.InputOutput) 

Edit: Où trouverez toutes les entrées pour lesquelles le lambda est vrai. SelectMany est utilisé pour aplatir une séquence de IEnumerables. Édition 2: Supprimé == vrai

+4

La comparaison avec 'true' est redondante. –

2
validRuleSetParameters.Where(rsp => rsp.InputOutput);