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

我想做一行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" 

单线有可能吗?

听起来你真的想要一个Dictionary或者可能是一个switch语句……

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

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

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

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

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

应该做的伎俩。

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

如果你有太多的if/else结构,你可以考虑使用不同的数据结构,比如Dictionaries (查找键)或Collection (运行条件LINQ查询)