我有一个对象列表。该对象具有不同的领域,例如年龄和姓名
现在有时我想按姓名排序,有时按年龄排序。附加有时是递增顺序,有时是递减顺序。
现在我明白我应该在我的对象中实现 Comparable 接口并重写 CompareTo 方法。
但是当我想支持各种排序顺序时该怎么办呢?
我是否必须在对象中设置排序顺序,或者是否可以通过排序方法调用传递排序顺序?
方法调用可以做一切事情;不需要比较器:
list.Sort((x,y)=>string.Compare(x.Name,y.Name));
list.Sort((x,y)=>y.Age.CompareTo(x.Age)); // desc
list.Sort((x,y)=>x.Age.CompareTo(y.Age)); // asc
请注意,通过在比较中交换 x/y,第二个是降序的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)