2011-11-09 56 views

回答

2

不適用於一般情況 - 並非所有的ientity都必須是entity(即可能是另一個實現相同接口的類) - 另一種方法是使用列表上的Cast()操作。

3
List<IEntity> myList; 
//initialization omitted 

List<Entity> convertedList = myList.OfType<Entity>().ToList(); 

當然,這隻會產生類型爲Entity的物品。

3
using System.Linq; 
List<Entity> newList = list.Cast<Entity>().ToList(); 
//or 
List<Entity> newList = list.OfType<Entity>().ToList(); 
+0

+1爲「使用」。 – Nayan

2

您可以使用LINQ來做到這一點。該OfType<T>擴展方法將提取出屬於您的特定類,你可以用它來生成列表中的實體:

List<IEntity> theEntities = GetEntities(); 
List<YourEntity> newList = theEntities.OfType<YourEntity>().ToList(); 

如果你知道,可以肯定,所有的實體都是特定的類,那麼,你可以使用Cast<T>

List<IEntity> theEntities = GetEntities(); 
List<YourEntity> newList = theEntities.Cast<YourEntity>().ToList(); 
相關問題