具有超过 1 个条件检查的三元运算符

Ternary operator with more than 1 condition check

我有一个场景,为了给变量赋值,我需要检查 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"

你的意思是这样

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

正如评论中所建议的,这对于三元运算符来说太复杂了。如果你有 C#8,那么你可以将它与 switch 的表达式形式结合使用。类似于:

Result = isUser ? ResultId switch
{
    1 => "Pass",
    2 => "Pass",
    5 => "Absent",
    _ => r.Result
}
: r.Result;