c# - comment puis-je changer cette condition à ce que je veux




asp.net (7)

Comme ça:

status == 0 ? "Absent" : status == 1 ? "present" : status == 3 ? "Unacceptable Absent" : 1==1

J'espère vous aider.

J'ai une condition avec deux valeur. si la condition égale à 0 il retourne Absent et si égal à 1 il retourne present . maintenant, je veux ajouter la troisième valeur à ma condition. si la condition égale à 3 elle renvoie Unacceptable absent .

ce sont mes conditions avec deux valeur:

(status >= 1 ? "Present" : "Absent")

Comment puis-je changer la condition?


Je recommande quelque chose de plus lisible pour @Shubhams comme ceci:

string foo(int status)
{
    if (status == 0)
        return ("Present");
    else if (status == 1)
        return ("Absent");
    else if (status == 2)
        return ("Somthing else");
    else
        return ("Outside");
}

La meilleure approche consiste à supprimer autant que possible les autres conditions, et voici comment procéder:

public static class AppStartupConfig
{
    public static Dictionary<int,string> AttendanceStatus = new Dictionary<int,string>();

    public static void InitAppStuff(){
        //Bring basic data from database
        //fill the list looping data for e.g:
        if(AttendanceStatus.Count == 0){
           AttendanceStatus.Add(0,"Absent");
           AttendanceStatus.Add(1,"Present");
           AttendanceStatus.Add(3,"Unacceptable absent");
        }
    }
}

et pour l'utiliser, vous n'aurez plus besoin de quoi que ce soit d'autre dans votre application, exécutez simplement cette méthode au point de démarrage de votre application, puis obtenez simplement votre valeur en fournissant la clé de ce dictionnaire comme:

    AppStartupConfig.InitAppStuff();
    Console.WriteLine(AppStartupConfig.AttendanceStatus[3]); //returns respective string value

Violon C #


Si vous devez vous en tenir à l'opérateur Ternary, vous pouvez modifier le code pour satisfaire trois valeurs.

string tmp = (status == 0 ? "Absent" : (status == 1 ? "Present" : "NA"));

Vous pouvez utiliser quelque chose comme ceci:

status == 0 ? "Absent" : status == 1 ? "Present" : "Unacceptable"

Mais ce style de code n'est pas bien lisible. Mieux vaut utiliser un dictionnaire ou une instruction switch / case, etc.


vous pouvez ajouter le statut de sécurité «NA» et procéder comme suit:

status == 0 ? "Absent" : status == 1? "Present" : status == 3? "Unacceptable Absent" : "NA";

(status == 0 ? "Absent" : status == 1 ? "Present" : status == 3 ? "Unacceptable" : "Unknown status")

Vous pouvez imbriquer les opérateurs, de cette façon vous créez en quelque sorte un grand arbre if & else qui, à mon avis, est en quelque sorte lisible. Un commutateur serait plus lisible.







asp.net