/// <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