2013-04-30 5 views
6

각 자식 개체 목록이있는 부모 개체 목록이 있으면 특정 ID와 일치하는 자식 개체를 찾고 싶습니다. 나는이 사용 Linq를 할 수있는 방법LINQ를 사용하여 부모 개체 목록에서 자식 개체 찾기

List<Parent> parents = GetParents(); 
Child childWithId17 = ??? 

:

public class Parent 
{ 
    public int ID { get; set; } 
    public List<Child> Children { get; set; } 
} 

public class Child 
{ 
    public int ID { get; set; } 
} 

는 지금은 자식 객체가 특정 ID를 가지고 싶어?

답변

17

난 당신이 원하는 생각 :이 부모의 어린이 속성이 널 참조 할 수는 null 자식에 대한 참조를 포함하지 않을 것이라는 가정

Child childWithId17 = parents.SelectMany(parent => parent.Children) 
          .FirstOrDefault(child => child.ID == 17); 

하는 것으로.

+0

+1, 애니 : 그것은 유용합니다! – zey

+0

@Ani null 참조의 경우 두 개의 추가 Where 조건을 추가 할 수 있습니다. –

+0

@AkashKava : 물론, 디자인 상 null이 허용되지 않는 한 추가 할 필요는 없습니다. – Ani

6

당신은 SelectMany를 사용할 수 있습니다

Child childWithId17 = parents.SelectMany(p => p.Children) 
          .Where(ch=>ch.ID==17) 
          .FirstOrDefault(); 
관련 문제