我有类型的字段X. ILIST <ITopics>
我想这样做:
Object.X= AListOfSometypeThatInheretsITopics;
Run Code Online (Sandbox Code Playgroud)
如何正确地将列表强制转换为Object.X?
这需要通用方差,遗憾的是不可能,IList<T>因为它表达了一个可变列表接口.你最好的选择是使用非泛型IList或通用IEnumerable<T>(适用于C#4的方差)作为字段/属性类型,或者通过诸如
x = inputList.OfType<ITopics>().ToList();
Run Code Online (Sandbox Code Playgroud)
获得适当风味的清单.