Tôi đang cố gắng sử dụng IComparer
để sắp xếp danh sách các điểm. Đây là lớp IComparer:Sử dụng IComparer để phân loại
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;
}
}
Trong mã khách hàng, tôi đang cố gắng sử dụng lớp này để phân loại một danh sách các điểm p (loại List<Point>
):
CoordinatesBasedComparer c = new CoordinatesBasedComparer();
Points.Sort(c);
Các lỗi mã ra. Dường như nó đang mong đợi IComparer<Point>
làm đối số để sắp xếp phương thức.
Tôi cần phải làm gì để khắc phục sự cố này?
Bạn gặp phải lỗi gì? Trong dòng nào? –
Tại sao bạn không sử dụng LINQ, nó thậm chí còn nhanh hơn với việc phân loại. – gdoron
@gdoron Tôi không chắc chắn "nhanh hơn" là đúng thời hạn; * thuận tiện hơn *, có thể là –