IComparable接口实现自定义类型的排序
2024-08-31 15:21:42
IComparable接口实现自定义类型的排序
CompareTo(Object) 方法的实现必须返回有三个值之一
如下表中所示。
返回值 | 参数比较 |
---|---|
大于0 | x>y |
等于0 | x=y |
小于0 | x<y |
首先定义一个用于测试的Person类
class person : IComparable
{
public string Name { set; get; }
public int Age { set; get; } public override string ToString()
{
return "name: " + this.Name + " " + "age: " + this.Age;
}
}
接着使用第一种方法:CompareTo(Object) 方法来实现IComparable接口
public int CompareTo(object obj)
{
person s = obj as person; return this.Age.CompareTo(s.Age);
}
接着,进行第一次排序测试
class Program
{
static void Main(string[] args)
{
person[] ps = new person[] { new person() { Name = "gaoning", Age = }, new person() { Name = "laohuan", Age = }, new person() { Name = "lihong", Age = }, new person() { Name = "qinqi", Age = } }; Array.Sort(ps); foreach (var item in ps)
{
Console.WriteLine(item.ToString());
}
Console.ReadKey();
}
}
得出的结果:
可见,我们已经实现了自定义类型的排序。
咱们用另外一种写法来实现
public int CompareTo(object obj)
{
person s = obj as person; if (s.Age > this.Age)
{
return ;
}
else if (s.Age == this.Age)
{
return ;
}
else
{
return -;
}
}
测试完后的效果和第一次的一样,就不发了。
这样,我们就简单的实现了自定义类型的排序。这只是我初步学习的结果,如果有什么不足或者错误的地方,恳请各位指出
最新文章
- asp.net mvc ajax FileUpload
- 算法与数据结构之选择排序(C语言)
- paip.解决 数据库mysql增加列 字段很慢添加字段很慢
- SQL获取本周销售总数
- html的视频插件 (转)
- ecshop--加载初始化文件
- json处理三部曲之第二曲:利用Jackson处理json
- (一)初识Redis
- java的多态性
- [转]jQuery 选择器和dom操作
- js的this到底是什么意思
- ODOO区分测试库和正式库的简单方法
- 《mysql必知必会》学习_第10章_20180731_欢
- Python2.7-heapq
- Windows 10无法使用debug的解决方案
- 放入MP3的文件夹显示一些没用的标题,艺术家,唱片集怎么办?
- Qt 反射
- [BZOJ5252][八省联考2018]林克卡特树lct
- Gdb调试工具/ Makfile项目管理
- centos7上面安装MySQL
热门文章
- ajax同时提交表单且包含文件
- Mean, Median, Mode, Range, and Standard Deviation
- salt 安装kubernetes集群3节点
- 如何在ssh远程linux服务器时不需要输入密码
- sshd修改监听端口
- 【codeforces 67A】Partial Teacher
- Qt之自定义布局管理器(QCardLayout)
- Android与设计模式——单例(Singleton)模式
- UVALive 6084 Happy Camper(数学题)
- hdu_1166,线段树单点更新