2012-11-16 5 views
5

부모 클래스 X와 하위 클래스 X1 및 X2 (X에서 파생 된 X1 및 X2)가 있습니다. X1과 X2 목록을 X 목록에 결합하는 쉬운 방법이 있습니까?
X1과 X2 목록을 반복하여 X 목록에 추가 할 수 있지만 약간 성가시다.상위 클래스 목록에 하위 클래스 목록 결합

+0

당신이 캐스트를 사용할 수 있습니다 내가 확실히 – m4ngl3r

+0

생각하지만 반복이 필요합니다. 나는 linq (적은 코드) 솔루션을 찾고 있는데 – cs0815

답변

6

LINQ 편리

var both = list1.Cast<X>().Concat(list2.Cast<X>()).ToList(); 

또는

var both = ((IEnumerable<X>)list1).Concat((IEnumerable<X>)list2).ToList(); 

하지만 그럼에도 불구하고 루핑있어이 작업을 수행 할 수 있습니다 - 다만 커버 아래. 이 같은

+0

너무 많은 코드를 작성하지 않아도 루핑을 신경 쓰지 않아도된다. (- : 그냥 ConvertAll을 가로 질러왔다. – cs0815

2

사용 Enumerable.Cast 방법 :

var list1 = new List<X1>(); 
var list2 = new List<X2>(); 
var result = list1.Cast<X>().Concat(list2.Cast<X>()).ToList();