Nel mio codice C#, ho bisogno di valutare due variabili non nulle. Ho elaborato un set di if-else if dichiarazioni, ma nella mia mente sembra brutto e un po 'troppo sciatto, anche se è corretto.Esiste un modo efficace per eseguire una dichiarazione di selezione con due variabili?
Ho guardato nello MSDN Library e ho visto solo esempi di selezione basati su una singola variabile.
C'è un modo più pulito e più compatto per ottenere lo stesso risultato?
Aggiornamento: Ho inserito il codice per fornire più contesto. Guardando di più, forse posso manipolare la query di linq direttamente in base ai parametri. Tuttavia, la domanda che pongo è quella generica su cui vorrei concentrarmi: la selezione anziché il codice utilizzato dopo la selezione.
public ActionResult Index(string searchBy, string orderBy, string orderDir)
{
var query = fca.GetResultsByFilter(searchBy);
if (orderBy == "Campus" && orderDir == "Asc")
{
query = query = query.OrderBy(s => s.Campus).ThenBy(s => s.Student_Name);
}
else if (orderBy == "Campus" && orderDir == "Desc")
{
query = query.OrderByDescending(s => s.Campus);
}
else if (orderBy == "Student Name" && orderDir == "Asc")
{
query = query = query.OrderBy(s => s.Student_Name);
}
else if (orderBy == "Student Name" && orderDir == "Desc")
{
query = query.OrderByDescending(s => s.Student_Name);
}
else if (orderBy == "Course Count" && orderDir == "Asc")
{
query = query.OrderBy(s => s.Course_Count);
}
else if (orderBy == "Course Count" && orderDir == "Desc")
{
query = query.OrderByDescending(s => s.Course_Count);
}
}
Qual è il codice '/ * ... * /'? È possibile utilizzare LINQ per eseguire query come questa, assumendo che ciò che si trova all'interno del codice. – Cyral
Stavo parlando in un senso più generico. Questi sono i parametri inviati alla funzione da un modulo di invio. Modificheremo la mia domanda postata per fornire quel contesto. –
Si potrebbe dapprima creare un metodo come If (controllare ("campus", "ASC")) ..., quindi aggiungere le stringhe in un array e scorrere tra ... per (i ...) {if (controllare (strby [i], strdir [i]))} .... o crea un oggetto speciale per esso se non ti piacciono due array ... – ElDuderino