C5 Generics Collection IntervalHeap <T>- получение IPriorityQueueHandle из T для замены или удаления операции - PullRequest
1 голос
/ 10 июня 2010

Я использую библиотеку Generics Collection C5 (сервер отключен :-(), и у меня есть IntervalHeap (T), и мне нужно удалить или заменить T, который не является максимальным или минимальным. Как получить IPriorityQueueHandle из моего T? Исходный код библиотеки C5 показывает, что IPriorityQueueHandle (T) не имеет методов или свойств для реализации, и компилятор считает, что моя реализация IPriorityQueueHandle (T) для моего T является приемлемой. T как это:

q.Replace(t, t);

и библиотека C5 генерирует исключение InvalidCastException, поскольку она не может преобразовать мой T в (дескриптор).

1 Ответ

2 голосов
/ 10 июня 2010

Похоже, я могу получить IPriorityQueueHandle (t), когда я вызываю q.Add (ref t.handle, t), который я могу вставить в собственное поле (t.handle) и вытащить, когда мне позже понадобится изменить t приоритет в пределах q с помощью q.Replace (t.handle, t).

...