标签:
groupList是原始数据集合,List<T>
sortOrder是排序类型,desc 或者asc
sortName是排序属性名称
private static object GetPropertyValue(object obj, string property) { System.Reflection.PropertyInfo propertyInfo = obj.GetType().GetProperty(property); return propertyInfo.GetValue(obj, null); } var resultList = sortOrder == "desc" ? groupList.OrderByDescending(p => GetPropertyValue(p, sortName)) : groupList.OrderBy(p => GetPropertyValue(p, sortName)); //linq方式: // var resultList1 = from p in groupList orderby GetPropertyValue(p, m.SortName) select p; if (sortOrder == "desc") resultList1 = from p in groupList orderby GetPropertyValue(p, sortName) descending select p;
将泛型 System.Collections.Generic.IEnumerable<T> 转换为泛型 System.Linq.IQueryable<T>。
var groupQueryList = groupList.AsQueryable();//here var tmpList = groupQueryList .OrderBy(sortName, sortOrder);
参考:http://stackoverflow.com/questions/41244/dynamic-linq-orderby-on-ienumerablet#41262
标签:
原文地址:http://www.cnblogs.com/xtechnet/p/4305850.html