Лямбда-выражение на булево - PullRequest
0 голосов
/ 17 ноября 2010

Какой правильный синтаксис для лямбда-выражения для сравнения значений bool?

В приведенном ниже примере показано rsp.InputOutput, что является значением bool.Однако я получаю ошибку компилятора, когда я пытаюсь сделать это.Я знаю, что это что-то маленькое, любая помощь приветствуется.

В этом примере я хочу выбрать все параметры набора правил, которые имеют значение InputOutput true.

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

благодаря Найл

Ответы [ 3 ]

5 голосов
/ 17 ноября 2010

Я думаю, вы просто ищете предложение Where:

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

SelectMany совсем другое; он используется, когда вы хотите проецировать каждого члена последовательности на другую sequence , а затем объединить результирующие последовательности последовательностей в одну последовательность.

Обратите внимание, что если InputOutput является логическим свойством, rsp.InputOutput уже уже логическим выражением. Следовательно, использование оператора равенства для создания другого логического выражения (путем сравнения его значения с литералом bool true) не требуется.

2 голосов
/ 17 ноября 2010
validRuleSetParameters.Where(rsp => rsp.InputOutput);
2 голосов
/ 17 ноября 2010

Вы хотите:

validRuleSetParameters.Where(rsp => rsp.InputOutput)

Редактировать: Где найти все записи, для которых лямбда истинна.SelectMany используется для выравнивания последовательности IEnumerables.Изменить 2: Удалено == true

...