【发布时间】:2014-08-06 04:37:46
【问题描述】:
我有这段代码可以完美运行,但对我来说似乎并不漂亮。我想尽可能缩短这段代码。 升序是布尔值,排序是字符串。
if(ascending)
switch (sort)
{
case "ID":
return lstFiltered.OrderBy(o => o.ID).ToList();
case "Device_Name":
return lstFiltered.OrderBy(o => o.Device_Name).ToList();
case "ErrorType_Name":
return lstFiltered.OrderBy(o => o.ErrorType_Name).ToList();
case "Error_Name":
return lstFiltered.OrderBy(o => o.Error_Name).ToList();
case "WAIT_TIME":
return lstFiltered.OrderBy(o => o.WAIT_TIME).ToList();
default:
return lstFiltered;
}
else
switch (sort)
{
case "ID":
return lstFiltered.OrderByDescending(o => o.ID).ToList();
case "Device_Name":
return lstFiltered.OrderByDescending(o => o.Device_Name).ToList();
case "ErrorType_Name":
return lstFiltered.OrderByDescending(o => o.ErrorType_Name).ToList();
case "Error_Name":
return lstFiltered.OrderByDescending(o => o.Error_Name).ToList();
case "WAIT_TIME":
return lstFiltered.OrderByDescending(o => o.WAIT_TIME).ToList();
default:
return lstFiltered;
}
【问题讨论】:
-
那是
lstFiltered的类型? -
这本质上是一个代码审查请求。
-
LstFiltered 是对象列表,但对象类型每次都不同。
标签: c# optimization switch-statement