我有这样的代码 -
List<User> users;
protected class User : IComparable<User>
{
public string name;
public string email;
public decimal total;
public string address;
public string company;
public string origin;
public int CompareTo(User b)
{
return this.total.CompareTo(b.total);
}
}
对于按用户拥有的点数排序的表。它按升序排序,但需要将其更改为降序。它使用users.Sort()
,但我似乎无法弄清楚如何按相反顺序排序。
答案 0 :(得分:7)
如果您想要撤消订单,只需反转比较:
public int CompareTo(User b)
{
return b.total.CompareTo(this.total);
}
答案 1 :(得分:3)
只需在比较中反转参数即可。所以而不是:
return this.total.CompareTo(b.total);
只是做:
return b.total.CompareTo(this.total);
答案 2 :(得分:3)
如果您的User
课程可以更改为按相反顺序排序,您可以尝试其他建议修改CompareTo
方法的答案。否则请尝试以下操作。
users.Sort();//Sort normally
users.Sort((x, y) => y.CompareTo(x));//Reverse sort
答案 3 :(得分:0)
public int CompareTo(User b)
{
return this.total.CompareTo(b.total) * -1;
}