我正在嘗試使用IComparer
對點列表進行排序。這裏是的IComparer類:使用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>
作爲排序方法的參數。
我需要做些什麼來解決這個問題?
你得到了什麼錯誤?在哪一行? –
爲什麼不使用LINQ,它在分類上更快。 – gdoron
@gdoron我不確定「更快」是否合適? *更方便*,也許 –