2009-12-01 65 views
2

我知道我可以從它自己的類型對象轉換接口類型,像這樣:鑄造對象的列表其接口類型在C#

IMyInterface myValue = (IMyInterface)MyObjectThatImplementsMyInterface; 

我怎麼能投IList<MyClassThatImplementMyInterface>IList<IMyInterface>

+0

的IList到IList的?他們看起來和我一樣! – CesarGon 2009-12-01 23:47:46

+1

尖括號沒有被轉義,因此它們看起來像是虛假標籤,Markdown吃了它們。 – 2009-12-01 23:49:04

回答

9

我回答了同樣的問題yesterday,雖然對於基類而不是接口。

使這項工作的方法是迭代列表並投射元素。

IList<A> listOfA = new List<C>().ConvertAll(x => (A)x); 

你也可以使用Linq:這可以使用ConvertAll做

IList<A> listOfA = new List<C>().Cast<A>().ToList();