有关Sort()的使用方法可以参考此文:http://www.cnblogs.com/azure/archive/2009/08/01/ASP_NET_LIST_SORT_FIND_DELEGATE.html
OrderBy是Linq提供的扩展方法,如果要实现排序只需:
var su=userrole.OrderBy(f=>f.Level);
(假定Role类有一个int类型属性Level,用以表示等级)
su变量里存储的就是一个经过排序的列表,其类型为IOrderedEnumerable<Role>,如果还希望获得List<Role>类型,则改为:
var su=userrole.OrderBy(f=>f.Level).ToList();
OrderBy(f=>f.Level)这里可以放置任意简单类型的返回值,比如OrderBy(f=>f.Level%3)或OrderBy(f=>Math.Abs(f.Level)),该方法会自动根据返回值由小到大排列;当然也可以返回字符串,那就会按字母顺序排列,比如OrderBy(f=>f.Name)。
还有个OrderByDescending()方法用于从大到小排列,使用方法相同。
Code
//这是个比较器
public class NameComparer:Icomparer<Student>
{
//实现姓名升序
public int Compare(Student x,Student y)
{
return(x.Name.CompareTo(y.Name));
}
}
//窗体中的排序按钮的点击事件
//省略了……
{
//之前我构造了一个Student的泛型叫students
students.Sort(new NameComparer());
//现在我泛型中的顺序已经按姓名升序好了。
}
引用自:http://topic.csdn.net/u/20080608/14/05b38a94-3d4e-4836-8525-0e4fbc393340.html
你如果使用Linq的话很容易,OrderBy 扩展方法
小弟拜谢了!!!