在我的C#代码中,我需要评估两个非空变量。我设计了一组if-else if语句,但在我的脑海中,即使它是正确的,它看起来很丑陋而有点凌乱。
我查看了MSDN Library中仅基于单个变量的选择示例。
是否有更清晰和更紧凑的方法来实现相同的结果?
更新:我填写了代码以提供更多上下文。再看看这个问题,也许我可以根据参数直接操作linq查询。但是,我提出的问题是通用的,我想重点关注选择而不是选择后使用的代码。
我查看了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);
}
}
/* ... code ... */
是什么?您可以使用 LINQ 来执行像这样的查询,假设代码中包含了它。 - Cyral