【发布时间】:2010-10-07 01:26:12
【问题描述】:
我有一个IList<DerivedClass>,我想将其转换为ICollection<BaseClass>,但是当我尝试显式转换时,我得到null。是否可以在不创建和填充新集合的情况下执行此操作?
编辑: 由于我只想从集合中读取,我切换到使用通用方法:
public void PopulateList<BaseClass>(ICollection<T> collection)
然后我可以传递一个IList<DerivedClass>。是否有缓存此列表的好方法,以便我可以在需要时刷新它。我的第一个倾向是使用:
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>);
}
有人有更好的方法吗?
【问题讨论】:
-
一个代码示例会很有帮助。没有它,很难给你任何有用的答案。
标签: .net generics collections