Je voudrais faire une seule ligne si déclaration avec plus d'une action.
La valeur par défaut est la suivante:
(if) ? then : else
userType = (user.Type == 0) ? "Admin" : "User";
Mais je n'ai pas besoin d'un "autre" seulement, j'ai besoin d'un "autre si"
comme ça en multi ligne:
if (user.Type == 0)
userType = "Admin"
else if (user.Type == 1)
userType = "User"
else if (user.Type == 2)
userType = "Employee"
Y at-il une possibilité pour cela en ligne simple?
On dirait que tu veux vraiment un Dictionary<int, string>
ou éventuellement une instruction switch
...
Vous pouvez le faire avec l'opérateur conditionnel si:
userType = user.Type == 0 ? "Admin"
: user.Type == 1 ? "User"
: user.Type == 2 ? "Employee"
: "The default you didn't specify";
Bien que vous puissiez le mettre en une ligne, je vous exhorte vivement à ne pas le faire.
Je voudrais normalement seulement le faire dans des conditions différentes, mais pas seulement avec plusieurs valeurs possibles, ce qui est mieux géré dans une carte.
userType = (user.Type == 0) ? "Admin" : (user.type == 1) ? "User" : "Admin";
devrait faire l'affaire.
Vous pouvez écrivez cela en une seule ligne, mais ce n'est pas quelque chose que quelqu'un pourrait lire. Gardez-le comme vous l'avez déjà écrit, c'est déjà beau tout seul.
Si vous en avez trop if/else
_ constructions, vous pouvez penser à utiliser différentes infrastructures de données, comme Dictionaries
(pour rechercher des clés) ou Collection
(pour exécuter des requêtes conditionnelles LINQ
)