Próbuję posortować listę punktów za pomocą IComparer
. Oto klasa IComparer:Używanie programu IComparer do sortowania
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;
}
}
W kodzie klienta, staram się korzystania z tej klasy do sortowania listę punktów p (typu List<Point>
):
CoordinatesBasedComparer c = new CoordinatesBasedComparer();
Points.Sort(c);
błędów kodu na zewnątrz. Wygląda na to, że oczekuje się, że metoda sortowania będzie miała postać IComparer<Point>
.
Co muszę zrobić, aby to naprawić?
Jakiego błędu dostałeś? W jakiej linii? –
Dlaczego nie używasz LINQ, to jeszcze szybciej z sortowaniem. – gdoron
@gdoron Nie jestem pewien, czy "szybszy" jest właściwym terminem; * wygodniej *, może –