Quiero tener un diccionario que asigne cadenas a listas genéricas de distintos tipos. es decir, en la forma siguiente:Diccionario de listas genéricas o tipos variables
Key Value string List<T> string List<U> string List<V> string List<U> ...
Actualmente estoy usando un Dictionary<string, IList>
y después se extrajo la lista establecimiento inflexible de cada diccionario KeyValuePair<string, IList> pair
la entrada de la siguiente manera:
Type layerType = pair.Value.GetType().GetGenericArguments()[0];
List<layerType> objectsClicked = pair.Value as List<layerType>;
¿Existe una manera más agradable de hacer esto ?
[Editar] Como se ha señalado, lo anterior no se compila, disculpas, eso es lo que obtienes cuando haces una pregunta mientras aún trabajas en algunas cosas. Algo más de explicación. Estoy haciendo un visor de datos espaciales básicos. La vista final consiste en un grupo de Layer<T>
s. Cada capa proporciona un delegado para representar su tipo (dado un desplazamiento y una escala) y una forma de verificar cuáles de sus objetos están en la ventana actual. Para las pruebas de impacto, me gustaría una lista para cada capa de los objetos que han sido golpeados. Esa lista sería List<Point>
para una capa Point
, etc ... La agrupación de los hits de todos los Layer<T>
s sería una colección de listas fuertemente tipadas.
El código de ejemplo proporcionado no se compilará. En cualquier caso, sería de gran ayuda si pudieras decirnos a) qué vas a hacer con la lista una vez que la saques b) cuál es el problema más grande que estás tratando de resolver. – Ani
Lo que tienes no compilará. No puede pasar un tipo de objeto como un parámetro de tipo genérico. ¿Por qué incluso necesitas genéricos si no estás accediendo a la lista de manera fuertemente tipada? – Josh
Puesto que coloca estas listas en el mismo diccionario, debe haber algunos motivos comunes entre ellas (por ejemplo, tienen la misma clase/interfaz base o algo así). Debe proporcionar más información. –