IComparable接口实现自定义类型的排序
IComparable接口实现自定义类型的排序
| 返回值 | 参数比较 |
|---|---|
| 大于0 | x>y |
| 等于0 | x=y |
| 小于0 | x<y |

class person : IComparable
{
public string Name { set; get; }
public int Age { set; get; } public override string ToString()
{
return "name: " + this.Name + " " + "age: " + this.Age;
}
}

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 -;
}
}

测试完后的效果和第一次的一样,就不发了。
这样,我们就简单的实现了自定义类型的排序。这只是我初步学习的结果,如果有什么不足或者错误的地方,恳请各位指出
IComparable接口实现自定义类型的排序的更多相关文章
- golang 自定义类型的排序sort
sort包中提供了很多排序算法,对自定义类型进行排序时,只需要实现sort的Interface即可,包括: func Len() int {... } func Swap(i, j int) {... ...
- java自定义类型 比较排序 Comparator接口
String service_time = "6:00:00,7:00:00,8:00:00,9:00:00,10:00:00,11:00:00,12:00:00,13:00:00,14:0 ...
- C# 泛型集合的自定义类型排序
一.泛型集合List<T>排序 经sort方法之后,采用了升序的方式进行排列的. List<int> list = new List<int>() { 2, 4, ...
- C#自定义类型数组排序
在数组或者集合中对自定义类型进行排序分为两种方法. 1.如果这个自定义类型是自己定义编写的,那么我可以使它继承ICompareable<T>接口,实现其中的CompareTo(Object ...
- 【转载】C#中自定义Sort的排序规则IComparable接口
C#中的List集合在排序的时候,如果不使用Lambda表达式进行排序的话,一般调用Sort()方法进行排序,如果希望Sort()方法排序后的结果跟我们预想的效果一致或者按照我们自定义的规则排序,则需 ...
- [c#基础]泛型集合的自定义类型排序
引用 最近总有种感觉,自己复习的进度总被项目中的问题给耽搁了,项目中遇到的问题,不总结又不行,只能将复习基础方面的东西放后再放后.一直没研究过太深奥的东西,过去一年一直在基础上打转,写代码,反编译,不 ...
- java编程排序之自定义类型的集合,按业务需求排序
自定义引用类型放入集合中,按实际业务需求进行排序的两种思路 第一种思路: (1)自定义实体类实现java.lang.Comparable接口,重写public int compareTo(Object ...
- C#利用iComparable接口实现List排序
List<T>类可以使用Sort()方法对元素排序. Sort()方法定义了几个重载方法,分别是 public void List<T>.Sort(),不带有任何参数的Sor ...
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
1.IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环 ...
随机推荐
- parted 4T磁盘
parted /dev/vdg mklabel gpt mkpart primary ext4 0% 100%
- HDU 4945 2048 DP 组合
思路: 这个题写了一个背包的解法,超时了.搜了下题解才发现我根本不会做. 思路参见这个: 其实我们可以这样来考虑,求补集,用全集减掉不能组成2048的集合就是答案了. 因为只要达到2048就可以了,所 ...
- 使用AFNetworking第三方下载类
AFNetworking 眼下使用比較多得一个下载库 眼下一直在维护更新,使用的是很easy 不须要加入不论什么关联的库 1.带block形式 内部是任务队列进行下载 就是对operation的一 ...
- Android中设置半个屏幕大小且居中的button布局 (layout_weight属性)
先看例如以下布局 :
- PAT(B) 101-111-1-2014-03-01
1.个位数统计: #include<stdio.h> #include<iostream> #include<string.h> #include<set&g ...
- hdu5249 Tricks Device(网络流最大匹配)
分析题意可知: 1.最少须要切断多少边使吴不能找到张(题意吴仅仅能走最短路径上面的边),对从起点到终点的最短路径又一次建图,每条边的权值为1.求最大流就可以 2.在吴能够找到张的前提下,最多能够切断边 ...
- HDU4622:Reincarnation(后缀数组,求区间内不同子串的个数)
Problem Description Now you are back,and have a task to do: Given you a string s consist of lower-ca ...
- sass08 if while for each
scss @function getzIndex($layer: default){ $zindexMap: (default: 1, modal: 1000, dropdown: 500, grid ...
- BZOJ1468: Tree & BZOJ3365: [Usaco2004 Feb]Distance Statistics 路程统计
[传送门:BZOJ1468&BZOJ3365] 简要题意: 给出一棵n个点的树,和每条边的边权,求出有多少个点对的距离<=k 题解: 点分治模板题 点分治的主要步骤: 1.首先选取一个点 ...
- Pycharm在创建py文件时,如何自动添加默认文件头注释?
PyCharm是一款很好用的编写Python工程的IDE,用PyCharm创建一个Python文件或者向工程添加一个.py文件时,为了更好的使所编写的代码在各操作环境更好的运行,我们往往需要在.py文 ...