使用ILIST构建接口

zsh*_*arp 4 c# interface

我有类型的字段X. ILIST <ITopics>

我想这样做:

Object.X= AListOfSometypeThatInheretsITopics;
Run Code Online (Sandbox Code Playgroud)

如何正确地将列表强制转换为Object.X?

Jef*_*tin 8

这需要通用方差,遗憾的是不可能,IList<T>因为它表达了一个可变列表接口.你最好的选择是使用非泛型IList或通用IEnumerable<T>(适用于C#4的方差)作为字段/属性类型,或者通过诸如

x = inputList.OfType<ITopics>().ToList();
Run Code Online (Sandbox Code Playgroud)

获得适当风味的清单.