C#IComparable<T> SORT排序 的问题,C#高手进?

List集合对数字或者字母排序可能并鈈难不够要是对象排序,就要考虑用对象的哪个字段进行排序list提供了一个Sort()方法,List已经可以对内置类型(比如:int、double、string)排序通过對接口的实现也可以定制自己的类排序。可以通过IComparable<T&;接口或者IComparer<T&;接口实现

  • 通过IComparer<T&;接口实现扑克牌先按排面数字从小到大排序,如果数字相同则按花色枚举值排序

    需要自己构建一个单独的类来帮助List对他的成员排序创建一个类实现IComparer<T&;接口的Compare()方法。它取两个对象参数xy,并返回一個int类型的值如果要比较的值x小于y可以返回一个负值,反之返回一个正值相等返回零。当然你也可以改变返回值来实现升序和降序排列

  • 通过IComparable<T&;接口实现扑克牌先按排面数字从小到大排序,如果数字相同则按花色枚举值排序

    取一个对象作为参数如果要要比较的对象,在有序列表中应当出现在这个对象(自己)的后面CompareTo()就返回一个正数。

根据结果截图可以看出来这两种方法都实现了扑克牌按数字从小箌大排序,如果数字相等则按花色从黑桃, 方块, 红桃到 梅花的排序

  • IComparer<T&;接口需要创建比较类,并实现接口中的Compare()方法最后需要创建比较類的实例,并当作参数传入List.Sort()方法中

接口的功能 我想大家都是知道的书上已经讲的天花烂醉了

但是烦人的是大部分初学者包括我死活看不懂他们说的是什么意思,昨晚在C#高级编程中看了看总算 理解 了 一点點的小作用在此记录下以便以后拾遗

主要是通过Array的Sort方法来理解的 Sort方法要 通过对象去继承IComparable接口来实现排序(当然也有其它办法),我想入門这可能就是对这句话有点不理解在下面会有注释

我要回帖

更多关于 T_T 的文章

 

随机推荐