【发布时间】:2010-09-01 05:42:28
【问题描述】:
我以前做的是创建一个 case switch,以这种格式对我的 LINQ 进行排序:
List<products> productList = GetAllLists();
switch (sortBy)
{
case "name":
return productsList.OrderBy(pl => pl.Name);
case "date":
return productsList.OrderBy(pl => pl.DateCreate);
}
从长远来看,这会变得很麻烦。
我希望有一个通用方法,您可以简单地使用它来排序这样的 List 集合,并帮助您切换要排序的属性.. 像这样:
return SortListCollection(productsList, Name);
【问题讨论】:
-
您在此处询问的内容与
OrderBy已经提供的内容有何不同?您是否希望能够传递字符串而不是Func<T, TResult>? -
嗨,丹,我猜可能差不多。
-
直接传递
Func<T,R>,正如 Dan 所提到的,会很快并且允许编译时检查。使用字符串会很慢(呃),并且更容易出现运行时错误。