列表排序

List<T>类可以使用Sort()方法对元素排序。Sort()方法使用快速排序算法,比较所有的元素,直到整个列表排好序为止。

Sort()方法使用了几个重载的方法。可以传递给它的参数由泛型委托Comparison<T>和泛型接口IComparer<T>以及一个范围值和泛型接口IComparer<T>。

public void List<T>.Sort();
public void List<T>.Sort(Comparison<T>);
public void List<T>.Sort(IComparer<T>);
public void List<T>.Sort(Int32,Int32,IComparer<T>);

只有集合中的元素实现了IComparable接口,才能使用不带参数的Sort()方法。

自定义类Racer实现了IComparable<T>接口,可以按姓氏对赛车手排序:

racers.Sort();

如果需要按照元素类型不默认支持的方式排序,就应使用其他技术,例如,传递一个实现了IComparer<T>接口的对象。

RacerComparer类为Racer类型实现了接口IComparer<T>。这个类允许按名字、姓氏、国籍或获胜次数排序。排序的种类用内部枚举类型CompareType定义。CompareType枚举类型用RacerComparer类的构造函数设置。ICompaer<Racer>接口定义了排序所需的Compare()方法。在这个方法的实现代码中,使用了string和int类型的CompareTo()方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值