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

优化:

        public static object GetPropertyValue(this object obj, string property)
        {
            if (obj == null)
                return null;

            var propertyInfo = obj.GetType().GetProperty(property);

            return propertyInfo?.GetValue(obj, null) ?? null;
        }

 

 

第二步运用:

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:是你要进行排序的集合;

posted @ 2020-10-29 18:33  点滴一言  阅读(866)  评论(0编辑  收藏  举报