Linq自定义排序的写法(方法一)


第一步:

需要编写一个obiect方法用于转换:

        #region linq自定义排序方法
        public static object GetPropertyValue(object obj, string property)
        {
            System.Reflection.PropertyInfo propertyInfo = obj.GetType().GetProperty(property);
            return propertyInfo.GetValue(obj, null);
        }
        #endregion

第二步运用:

var sortField1s="CompanyName";
if (SortField == "desc")
{
    list_Subject = list_Subject.OrderByDescending(r => GetPropertyValue(r, "CompanyName")).Skip(PageSize * PageIndex).Take(PageSize).ToList();
   //优化:list_Subject = list_Subject.OrderByDescending(r => GetPropertyValue(sortField1s)).Skip(PageSize * PageIndex).Take(PageSize).ToList();
} 
else
{
list_Subject = list_Subject.OrderBy(r => GetPropertyValue(r,"CompanyName")).Skip(PageSize * PageIndex).Take(PageSize).ToList(); }

list_Subject:是你要进行排序的集合;

相关