2011-11-09 3 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(); 
관련 문제