Iro*_*fin 8 c# linq sorting generics .net-4.0
我试图基于字符串列名和linq编写一个通用的排序扩展方法到List.
我在这里有大部分内容,但它还没有奏效.逻辑取自本网站.
public static List<T> Sort<T>(this List<T> list, string sortColumn, string sortOrder)
{
if (string.IsNullOrWhiteSpace(sortColumn))
return list;
int order = sortOrder == "desc" ? -1 : 1;
var param = Expression.Parameter(typeof(T), "x");
var sortExpression = Expression.Lambda<Func<T, object>>(Expression.Property(param, sortColumn), param);
list = list.AsQueryable().OrderBy(sortExpression).ToList();
return list;
}
Run Code Online (Sandbox Code Playgroud)
单步执行此代码,我看到列表已正确排序,但返回时,它对我传入的列表没有影响.我猜测AsQueryable或OrderBy正在内存中创建一个新对象,我不再指向相同的参考.有没有人有一些关于如何使这项工作适当的提示,或者除此之外,另一种解决方案?谢谢!