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