Я хочу иметь словарь, который отображает строки в общие списки разных типов. то есть в следующем виде:
Key Value string List<T> string List<U> string List<V> string List<U> ...
В настоящее время я использую Dictionary<string, IList>
, а затем извлекаю строго типизированный список из каждой словарной статьи KeyValuePair<string, IList> pair
следующим образом:
Type layerType = pair.Value.GetType().GetGenericArguments()[0];
List<layerType> objectsClicked = pair.Value as List<layerType>;
Есть ли лучший способ сделать это?
[Изменить]
Как уже отмечалось, вышесказанное не компилируется, извинения - это то, что вы получаете, когда задаете вопрос, пока вы все еще работаете над чем-то.
Еще несколько объяснений. Я делаю основной просмотрщик пространственных данных. Окончательный вид состоит из группы Layer<T>
s. Каждый слой предоставляет делегату возможность отображать его тип (с учетом смещения и масштаба) и способ проверить, какие из его объектов находятся в текущем окне. Для тестирования попадания я хотел бы получить список для каждого слоя, из которого были удалены объекты. Этот список будет List<Point>
для слоя Point
и т.д.... Группировка обращений от всех Layer<T>
будет тогда набором строго типизированных списков.