我正在尝试使用一个 IComparer
对 Point 类型的列表进行排序。以下是 IComparer 类:
public class CoordinatesBasedComparer : IComparer
{
public int Compare(Object q, Object r)
{
Point a = (p)q;
Point b = (p)r;
if ((a.x == b.x) && (a.y == b.y))
return 0;
if ((a.x < b.x) || ((a.x == b.x) && (a.y < b.y)))
return -1;
return 1;
}
}
在客户端代码中,我试图使用这个类来对一个点的列表p(类型为List<Point>
)进行排序:CoordinatesBasedComparer c = new CoordinatesBasedComparer();
Points.Sort(c);
代码出错了。显然,它期望将 IComparer<Point>
作为参数传递给 sort 方法。
我需要做什么来解决这个问题?
IComparer
则不知道。更快。 - gdoron