C # XNA эквивалент Java PriorityQueue с Comparator? - PullRequest
1 голос
/ 07 февраля 2010

Я внедряю Дейкстру на доску плиток. Я хочу сохранить все плитки в очереди приоритетов, отсортированные по их расстоянию от начальной точки. В Java это будет что-то вроде:

Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });

Что будет эквивалент в C # XNA? C # имеет класс PriorityQueue, но он работает только для IComparable объектов, которые Point объектов не являются.

Ответы [ 2 ]

1 голос
/ 07 февраля 2010

Поскольку вы не можете наследовать от структуры Point, вы можете сделать минимальную реализацию класса IComparable ComparablePoint, используя Point в качестве составного элемента.

1 голос
/ 07 февраля 2010

Я думаю, что самое простое решение - реализовать собственный класс для хранения узла и сделать его сопоставимым (путем реализации интерфейса IComparable).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...