变量赋值的三重条件

时间:2019-01-18 17:32:40

标签: c#

我有一个简单的变量分配,例如:

  var color = order == "PO" ? Color.LightGreen : Color.LightBlue;

我的问题是,是否可以添加另一个条件来执行三重条件,如:

 var color = order == "PO" ? Color.LightGreen : "SO" ? Color.Lavender : Color.LightBlue;

所以我想说,如果顺序等于“ PO”,则返回LightGreen,如果其顺序为“ SO”,则返回Lavender,如果两者不同则返回LightBlue。我该如何实现?问候

3 个答案:

答案 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 ifs or a switch-case as mentioned, but also consider using a Dictionary<string, Color> for a quick lookup.