J'ai un IList<DerivedClass>
que je veux convertir en ICollection<BaseClass>
mais quand je tente une distribution explicite, j'obtiens null
. Est-il possible de le faire sans créer et remplir une nouvelle collection?Lance une collection générique vers le type de base
Edit: Puisque je veux seulement lire de la collection, je suis passé à l'aide d'une méthode générique:
public void PopulateList<BaseClass>(ICollection<T> collection)
Ensuite, je peux passer un IList<DerivedClass>
. Est-il un bon moyen de mettre en cache cette liste afin que je puisse l'actualiser quand j'en ai besoin. Mon premier penchant est d'utiliser:
Object cachedCollection;
Type cachedType;
public void PopulateList<BaseClass>(ICollection<T> collection) {
cachedCollection = collection;
cachedType = T;
// other stuff...
}
private void Refresh() {
PopulateList<cachedType>(cachedCollection as ICollection<cachedType>);
}
Quelqu'un at-il une meilleure façon de le faire?
Un exemple de code serait très utile. Sans cela, il est difficile de vous donner quelque chose comme une réponse utile. –