2014-06-09 2 views
0

다른 개체의 값 목록을 기반으로 개체의 하위 집합을 반환해야합니다.두 개체를 비교하기위한 LINQ 쿼리?

개체 반환 :

public class Item 
{ 
    public string Title {get;set;} 
    public Item subItems {get;set;} 
} 

내가 사용자 테이블에있는 항목 속성의 기반으로 "항목"의 부분 집합 선택합니다 : 그래서

public class User 
{ 
    public string ID {get;set;} 
    public Subscription[] subscriptions {get;set;} 
} 

public class Subscription 
{ 
    public string Title {get;set;} 
} 

를, 각 사용자는있을 것이다 구독 배열. 항목 제목이 사용자의 구독 내 제목 목록에있는 특정 사용자에 대해 Item 개체를 반환하고 싶습니다.

items = [ {title : "USA Today" 
      otherdata: "..."}, 
      {title: "ET Weekly", 
      otherdata: "..."} 
     ] 

답변

2

는 당신이 여기있는 것은 두 작업입니다, 하나를 사용자의 순서를 평평하게하는 순서로 : 예

...이 예에서

Items:[ 
{ title: "USA Today", 
    otherdata: "..."}, 
{ title: "WSJ", 
    otherdata: "..."}, 
{ title: "ET Weekly", 
    otherdata: "..."} 
] 

Users: [ 
{ ID: "joe schmo", 
    subscriptions" : [ 
    { item : "USA Today" }, 
    { item : "ET Weekly" } 
    ] 
}...] 

, 나는 돌아가려면 subscripsions을 입력 한 다음 각 항목의 Title 속성에있는 항목과 함께 가입하십시오.

var query = from user in users 
      from subscription in user.subscriptions 
      join item in items 
      on subscription.Title equals item.Title 
      select item; 
+0

완벽하게 작동했습니다. Servy에게 감사드립니다! –