我有ILIST <ITopics>
我正在尝试这样做:
Object.X= AListOfSometypeThatInheretsITopics;
如何将列表正确地转换为Object.X?
答案 0 :(得分:8)
这需要generic variance,遗憾的是IList<T>
无法使用{{3}},因为它表达了一个可变列表界面。您最好的选择是使用非通用IList
或通用IEnumerable<T>
(适用于C#4的差异)作为字段/属性类型,或者通过诸如
x = inputList.OfType<ITopics>().ToList();
获取适当风味的清单。
答案 1 :(得分:2)
尝试
object.x = IList<ITopics>.ofType<ITopics>().ToList()
答案 2 :(得分:0)
您可以使用IEnumerable<T>
扩展方法Cast
Object.X = yourList.Cast<ITopics>().ToList();