c# - ¿Cómo puedo cambiar esta condición a la que quiero?




asp.net (7)

Tengo una condición con dos valores. si la condición es igual a 0 , regresa Absent y si es igual a 1 , regresa present . Ahora quiero agregar el tercer valor a mi condición. Si la condición es igual a 3 , devuelve Unacceptable absent .

estas son mis condiciones con dos valores:

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

¿Cómo puedo cambiar la condición?


Como eso:

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

Espero poder ayudarte.


El mejor enfoque es deshacerse de las demás condiciones, y así es como lo haces:

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");
        }
    }
}

y para usarlo, no necesitará más si no lo hace a través de su aplicación, simplemente ejecute este método en el punto donde se inicia su aplicación y luego obtenga su valor al proporcionar la clave para este diccionario como:

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

Violín de C #


Puedes usar algo como esto:

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

Pero este estilo de código no se puede leer bien. Es mejor usar el diccionario o la instrucción switch / case etc.


Recomiendo algo más legible para el enfoque de @Shubhams como este:

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");
}

Utilice un diccionario de búsqueda.

//Initialized once in your program
var lookup = new Dictionary<int,string>
{
    { 0, "Absent"},
    { 1, "Present"},
    { 3, "Unacceptably Absent" }
};

//Call this whenever you need to convert a status code to a string
var description = lookup[status];

puede agregar un estado a prueba de fallos como "NA" y hacerlo de la siguiente manera:

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

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

Puede anidar los operadores, de esta manera puede crear un gran árbol de "si no" que, en mi opinión, es algo que pueda leerse. Un interruptor sería más legible.





asp.net