【发布时间】:2011-02-17 04:23:18
【问题描述】:
我正在尝试先按 x 坐标然后按 y 坐标对 2D 点列表进行排序。 我实现了IComparer接口如下:
class PointComparer : IComparer<Point>
{
public int Compare(Point x, Point y)
{
if (x.Y != y.Y)
{
return x.Y - y.Y;
}
else
{
return x.X - y.X;
}
}
}
然后调用我的排序如下:
pointsList.Sort(new PointComparer());
由于某种原因,列表没有排序。当然是非常简单和愚蠢的事情,但坚持了很长一段时间....TIA
【问题讨论】:
-
你为什么要把
IntPoint和Point比较? -
抱歉打错了。已更正。
-
不是先按 Y 再按 X 排序吗?此外,
x和y在这种情况下是可怕的名字。 -
“不排序”是指列表的顺序与您开始时的顺序相同,还是只是无法正常工作?
-
表示根本不排序,保留原始订单。
标签: c# sorting icomparable points