【发布时间】:2012-05-20 10:06:53
【问题描述】:
我正在检查排序参数并构建一堆if 语句:
if (sortDirection == "ASC")
{
if (sortBy == "Id")
return customerList.OrderBy(x => x.Id).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "FirstName")
return customerList.OrderBy(x => x.FirstName).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "City")
return customerList.OrderBy(x => x.City).Skip(startIndex).Take(pageSize).ToList();
}
else
{
if (sortBy == "Id")
return customerList.OrderByDescending(x => x.Id).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "FirstName")
return customerList.OrderByDescending(x => x.FirstName).Skip(startIndex).Take(pageSize).ToList();
if (sortBy == "City")
return customerList.OrderByDescending(x => x.City).Skip(startIndex).Take(pageSize).ToList();
}
我怎样才能让它变得更好?
【问题讨论】:
-
定义“更好”。更适合什么?
-
你想以什么方式“改进”它?它没有按预期工作吗?是不是太慢了?你不喜欢代码的结构吗?我们需要更多信息。
-
我会推荐使用 LINQ 组合。见stackoverflow.com/questions/5881107/…
-
创建一个代表字典,然后根据键调用它们。
-
如果它可以更加动态,我不需要添加 if 语句仅仅因为一个新的 sortBy 字符串已经被发送,那就太好了。