当前位置: 代码迷 >> C# >> 依据字段名称对list排序
  详细解决方案

依据字段名称对list排序

热度:359   发布时间:2016-05-05 02:53:13.0
根据字段名称对list排序
        /// <summary>
        /// 按字段排序list
        /// </summary>
        /// <typeparam name="T">排序数据类型</typeparam>
        /// <param name="list">排序数据</param>
        /// <param name="orderBy">排序字段(忽略大小写)</param>
        /// <param name="isDesc">是否逆序(从大到小)</param>
        public void ReOrder<T>(IEnumerable<T> list,string orderBy,bool isDesc)
        {
            if(isDesc)
            {
                list.OrderByDescending(p => p.GetType().GetProperty(orderBy, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase));
            }
            else
            {
                list.OrderBy(p => p.GetType().GetProperty(orderBy, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase));
            }
        }

求问问题出在哪儿,还是说这种思路本身是行不通的?
------解决思路----------------------
你这样子得到的只是那个属性的元数据对象,而不是属性的值。
------解决思路----------------------
by的是value,不是属性,所以你应该反射出属性,然后再通过属性getvalue
  相关解决方案