C5 Generics Collection IntervalHeap<T> - получение IPriorityQueueHandle из T для замены или удаления операции
Я использую библиотеку Generics Collection C5 (сервер отключен:-(), и у меня есть IntervalHeap(T), и мне нужно удалить или заменить T, который не является максимальным или минимальным. Как получить IPriorityQueueHandle из моего T Исходный код библиотеки C5 показывает, что IPriorityQueueHandle(T) не имеет методов или свойств для реализации, и компилятор считает, что моя реализация IPriorityQueueHandle(T) для моего T является приемлемой. Я пытаюсь использовать T следующим образом:
q.Replace(t, t);
и библиотека C5 генерирует InvalidCastException, потому что она не может преобразовать мой T в (дескриптор).
1 ответ
Похоже, я могу получить IPriorityQueueHandle(t), когда я вызываю q.Add(ref t.handle, t), который я могу вставить в свое собственное поле (t.handle) и вытащить, когда мне позже потребуется изменить приоритет t в q с q.Заменить (t.handle, t).