Тернарный оператор с более чем 1 проверкой состояния - PullRequest
2 голосов
/ 06 апреля 2020

У меня есть сценарий, в котором для присвоения значения переменной мне нужно проверить более 1 условия, возможно ли связать условия в ряд.

Ниже приведен только пример формата, как выглядит мой код

Result = (isUser == true && (ResultId == 1 || ResultId == 2 )) ? "Pass" : r.Result,

Если условие (isUser == true && (ResultId == 1 || ResultId == 2 )) выполнено, то я говорю Result = "Pass", иначе я присваиваю значение из r.Result.

Таким же образом я хочу проверить другое условие (isUser == True && (ResultId == 5)) тогда я хочу сказать Result = "Absent"

Ответы [ 2 ]

2 голосов
/ 06 апреля 2020

Как предлагается в комментариях, это становится слишком сложным для троичного оператора. Если у вас есть C # 8, вы можете использовать его в сочетании с формой выражения switch. Что-то вроде:

Result = isUser ? ResultId switch
{
    1 => "Pass",
    2 => "Pass",
    5 => "Absent",
    _ => r.Result
}
: r.Result;
0 голосов
/ 06 апреля 2020

Ты имеешь в виду, как это

Result = isUser && (ResultId == 1 || ResultId == 2 ) ?
 "Pass" : isUser && ResultId == 5 ? "Absent" : r.result;
...