您的位置:首页 > 编程语言 > ASP

代码阅读总结之ASP.NET StartKit TimeTracker(自定义集合类排序(Sort())方法随笔)

2005-03-14 14:23 821 查看
ASP.NET StartKit TimeTracker中定义了很多自定义集合类
例如:
UsersCollection
TimeEntriesCollection
等等

他们都是ArrayList类的子类

例如:
TimeEntriesCollection存放自定义类TimeEntry

这些自定义集合类都实现了排序方法Sort

先看我写的一段代码:

using System;
using System.Collections;

namespace ArrayListSort

运行结果是
public class class2:IComparable
public class class2_sort:System.Collections.IComparer
//是否为升序
bool isAsc;

//默认排序方式为升序
public class2_sort()
isAsc=true;
}

public class2_sort(bool b)
isAsc=b;
}

public int Compare(object x ,object y)
if (isAsc)
//升序
return ((class2)x).A.CompareTo(((class2)y).A);
}
else
//降序
return ((class2)y).A.CompareTo(((class2)x).A);
}
}
}

b.Sort( new class2_sort(false));
就可以实现降循序排序

个人觉得此方法灵活性高
推荐使用

小总结:
1.若要对自己的对象的数组进行排序,请在该对象上实现 IComparable 接口。
必须在该对象中定义一个 CompareTo 方法,以指定比较该对象的方式。
2.若要定义比较对象的特定方式,请创建一个实现了 IComparer 接口的类。
在该类中,必须包含一个 Compare 方法,该方法可接受要比较的两个对象。
它有助于您了解想要比较对象的方式以及允许哪些对象使用所定义的接口。

希望上面提到的知识对你有所提示
当然欢迎交流和指正

author:aierong
blog:http://www.cnblogs.com/aierong
email:aierong@126.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: