xProfitRate=x.t==0?0:x.a/x.t;
yProfitRate=y.t==0?0:y.a/y.t;
然后在进行比较:
if(xProfitRate==yProfitRate)
return 0;
if(xProfitRate>yProfitRate)
return -1;
if(xProfitRate<yProfitRate)
return -1;
else
return 1;
完美解决问题!网友如果出现该问题,建议先排除是否存在与本身比较不相等,或者一个值与另外一个值重复比较生成不同的结果的情况。
相关阅读 >>
无法排序,原因是 icomparer.compare() 方法返回不一致的结果。一个值与本身比较不相等,或者一个值与另外一个值重复比较生成不同的结果
net 使用 data.oracleclient 出现的错误
更多相关阅读请进入《排序》频道 >>
C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。