我想做一行多行动的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"
是否有可能单线?
答案 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}查询它)