В моем коде C# мне нужно оценить две ненулевые переменные. Я разработал набор команд if-else, если, но, на мой взгляд, он выглядит уродливым и немного слишком неряшливым, даже если он правильный.Есть ли эффективный способ сделать инструкцию выбора с двумя переменными?
Я посмотрел в MSDN Library и увидел только примеры для выбора на основе одной переменной.
Есть ли более чистый и компактный способ достижения такого же результата?
Обновление: Я заполнил код, чтобы предоставить больше контекста. Глядя на это больше, возможно, я могу манипулировать linq-запросом напрямую на основе параметров. Однако вопрос, который я задаю , это общий, который я хотел бы сфокусировать на: выбор, а не код, используемый после выбора.
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);
}
}
Что такое код '/ * ... ... * /'? Вы можете использовать LINQ для выполнения таких запросов, считая, что это то, что находится внутри кода. – Cyral
Я говорил в более общем смысле. Эти параметры отправляются в функцию по форме submit. Я исправлю свой вопрос, чтобы предоставить этот контекст. –
Вы могли бы сначала создать такой метод, как If (check ("campus", "ASC")) ..., затем добавить ваши строки в массив и выполнить цикл ... для (i ...) {if (check (strby [i], strdir [i]))} .... или создать для него специальный объект, если вам не нравятся два массива ... – ElDuderino