我有一个简单的变量分配,例如:
var color = order == "PO" ? Color.LightGreen : Color.LightBlue;
我的问题是,是否可以添加另一个条件来执行三重条件,如:
var color = order == "PO" ? Color.LightGreen : "SO" ? Color.Lavender : Color.LightBlue;
所以我想说,如果顺序等于“ PO”,则返回LightGreen,如果其顺序为“ SO”,则返回Lavender,如果两者不同则返回LightBlue。我该如何实现?问候
答案 0 :(得分:4)
是的,在false部分中使用其他条件,如下所示:
var color = order == "PO" ? Color.LightGreen : order == "SO" ? Color.Lavender : Color.LightBlue;
可读性很重要,那么当您遇到第四种情况时会发生什么?您可能想要简单地使用if/else
逻辑或switch
。
答案 1 :(得分:2)
是的,但是很难阅读,有关嵌套三元的示例,请参见here。
最好做一个switch:
String order;
Color color;
switch (order)
{
case "PO":
color = Color.LightGreen;
break;
case "SO":
color = Color.Lavender;
break;
default:
color = Color.LightBlue;
break;
}
已进行了修改,以适应您的情况;)
答案 2 :(得分:0)
Three might be the very end of the ternary chaining looking good and you could switch to classic if
s or a switch-case
as mentioned, but also consider using a Dictionary<string, Color>
for a quick lookup.