2009-08-04 4 views
5

문자열 배열을 해당 속성 중 하나로 포함하는 개체가 List 있습니다. 모든 값을 포함하는 별개의 문자열 배열을 원합니다.LINQ - 개체 계층 구조에서 모든 자식 선택

내 목적은 다음과 같습니다 : 일부 동물원은 하나의 동물을 가질 수있다

public class Zoo { 
    string Name { get; set;} 
    string[] Animals { get; set;} 
} 

, 일부는 많은있을 수 있습니다. 모든 동물원에서 모든 동물의 고유 목록을 List<Zoo>에 표시하는 가장 단순한 람다 식 또는 LINQ 쿼리는 무엇입니까?

답변

12
var query = zoos.SelectMany(zoo => zoo.Animals) 
       .Distinct(); 

아니면 쿼리 식 팬이라면 (나는이 간단한 무언가를하지 않을 것이다) :

var query = (from zoo in zoos 
      from animal in zoo.Animals 
      select animal).Distinct(); 
+0

감사합니다, 존. 내 잘못 입력. –

+0

오타가 어디 있습니까? 나는 그것을 놓쳐 버렸음에 틀림 없다 :) –

+4

오타가 내 신청서에 있었다. Visual Studio 용 StackOverflow addin이 나올 때까지 기다릴 수 없어, 내가 일하면서 내 응용 프로그램을 고칠 수 있습니다. :-) –

관련 문제