Quiero declarar un diccionario que almacena mecanografiadas IEnumerable
's de un tipo específico, con ese tipo exacto como la clave, así: (Editado para seguir comentario johny de g)En C#: ¿Cómo declarar un diccionario genérico con un tipo como clave y un IEnumerable <> de ese tipo como valor?
private IDictionary<Type, IEnumerable<T>> _dataOfType where T: BaseClass; //does not compile!
Las clases concretas que quiero tienda, todos derivan de BaseClass, por lo tanto, la idea de usarlo como restricción. El compilador se queja de que espera un punto y coma después del nombre del miembro.
Si iba a funcionar, yo esperaría que esto haría que la posterior recuperación de la simple diccionario como:
IEnumerable<ConcreteData> concreteData;
_sitesOfType.TryGetValue(typeof(ConcreteType), out concreteData);
¿Cómo definir un diccionario de este tipo?
restricción común de tipo de lado, declarando 'IDictionary>' constriñe claves para haber casos ** ** de 't', no' typeof (T) '. ¿Quieres indexar tus listas por 'typeof (T)' o por instancias de 'T'? si es anterior, debes declarar como 'IDictionary 'y lanzar miembros individuales del enumerable al consumir –
Sí, johnny g, tienes razón, quiero usar el tipo, no una instancia. Edito eso. – Marcel