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()方法中