| 复制代码public static IList<T> Sort<T>(this IList<T> source, string sortProper, bool asc) 
{ 
if (source != null && source.Any()) 
{ 
var properties = typeof(T).GetProperties(); 
PropertyInfo pro = null; 
foreach (var item in properties) 
{ 
if (item.Name.ToUpper().Equals(sortProper.ToUpper())) 
{ 
pro = item; 
break; 
} 
} 
for (int i = 0; i < source.Count; i++) 
{ 
T t; 
for (int k = 0; k < source.Count; k++) 
{ 
int compare = pro.GetValue(source[i], null).ToString().CompareTo(pro.GetValue(source[k], null).ToString()); 
if ((asc && compare <0)||(!asc && compare > 0)) 
{ 
t = source[i]; 
source[i] = source[k]; 
source[k] = t; 
} 
} 
} 
return source; 
} 
return null; 
}
 |