带有2个动作的单行if语句

时间:2012-09-18 20:01:04

标签: c# if-statement action

我想做一行多行动的if行。

默认为:

(if) ? then : else

userType = (user.Type == 0) ? "Admin" : "User";

但我不需要“其他”,我需要一个“其他如果”

就像在多行中那样:

if (user.Type == 0)
    userType = "Admin" 
else if (user.Type == 1)
    userType = "User"
else if (user.Type == 2)
    userType = "Employee"

是否有可能单线?

3 个答案:

答案 0 :(得分:72)

听起来你真的想要Dictionary<int, string>或可能是switch声明......

可以使用条件运算符来执行此操作:

userType = user.Type == 0 ? "Admin"
         : user.Type == 1 ? "User"
         : user.Type == 2 ? "Employee"
         : "The default you didn't specify";

虽然你可以把它放在一行,但我强烈建议你不要这样做。

我通常只会 为不同的条件执行此操作 - 不只是几个不同的可能值,这可以在地图中更好地处理。

答案 1 :(得分:18)

userType = (user.Type == 0) ? "Admin" : (user.type == 1) ? "User" : "Admin";

应该这样做。

答案 2 :(得分:6)

可以用单行编写,但这不是某人能够阅读的东西。保持它就像你已经写过它,它本身已经很漂亮了。

如果您有太多if/else构造,您可以考虑使用不同的数据结构,例如Dictionaries(查找键)或Collection(运行条件{{1}查询它)