2009-04-22 36 views
4

鑄造界面我型ILIST <ITopics>與ILIST

我試圖做到這一點的領域X:

Object.X= AListOfSometypeThatInheretsITopics; 

如何正確投的列表中Object.X?

回答

8

這需要generic variance,但遺憾的是不能用IList<T>,因爲它表示可變列表界面。最好的辦法是要麼使用非通用IList或通用IEnumerable<T>(它是適合於方差的C#4)作爲字段/屬性類型,或者通過一個機構將它轉換例如

x = inputList.OfType<ITopics>().ToList(); 

到獲取適當風味的清單。

2

嘗試

object.x = IList<ITopics>.ofType<ITopics>().ToList() 
0

您可以使用CAST

Object.X = yourList.Cast<ITopics>().ToList(); 
+0

IEnumerable<T>擴展方法,給你一個IEnumerable的不是一個IList 。 – 2009-04-22 20:08:49