假设我们要排序的类是Stu,定义如下: public class Stu { public string Class; public int Code; public int Age; } 我们新建一个Stu比较器: public class StuCmpr : IComparer<Stu> { public enum Order { Class, Age, Code } public Order oder; public int Compare(Stu a, Stu b) { switch (oder) { case Order.Age: return a.Age.CompareTo(b.Age); case Order.Class: return a.Class.CompareTo(b.Class); case Order.Code: return a.Code.CompareTo(b.Code); default: return a.Code.CompareTo(b.Code); } } }在比较器中,我们定义了按照Age,Code,Class排序的三种case,已实现按照不同的字段排序。 Usage: StuCmpr cmp = new StuCmpr();//新建比较器 cmp.oder = StuCmpr.Order.Age;//设置比较器的排列字段 List<Stu> stus = new List<Stu>(); for (int i = 0; i < 10; i++) { Stu stu = new Stu(); stu.Age = i; } stus.Sort(cmp);//排序 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/angel6709/archive/2009/09/03/4516265.aspx
public class Stu
{
public string Class;
public int Code;
public int Age; }
我们新建一个Stu比较器:
public class StuCmpr : IComparer<Stu>
{ public enum Order { Class, Age, Code }
public Order oder;
public int Compare(Stu a, Stu b)
{
switch (oder)
{
case Order.Age:
return a.Age.CompareTo(b.Age); case Order.Class:
return a.Class.CompareTo(b.Class); case Order.Code:
return a.Code.CompareTo(b.Code); default:
return a.Code.CompareTo(b.Code); }
}
}在比较器中,我们定义了按照Age,Code,Class排序的三种case,已实现按照不同的字段排序。
Usage:
StuCmpr cmp = new StuCmpr();//新建比较器
cmp.oder = StuCmpr.Order.Age;//设置比较器的排列字段
List<Stu> stus = new List<Stu>();
for (int i = 0; i < 10; i++)
{
Stu stu = new Stu();
stu.Age = i;
}
stus.Sort(cmp);//排序
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/angel6709/archive/2009/09/03/4516265.aspx
然后用委托来调用这些函数不就行了1楼的代码很清楚了