我需要根据另一个对象中的值列表返回一个对象的子集。
要返回的对象:
public class Item
{
public string Title {get;set;}
public Item subItems {get;set;}
}
我想选择" Items"的一部分。基于User表上的items属性:
public class User
{
public string ID {get;set;}
public Subscription[] subscriptions {get;set;}
}
public class Subscription
{
public string Title {get;set;}
}
因此,每个用户都将拥有一系列订阅。我想为特定用户返回一个Item对象,其中Item Title位于用户订阅中的标题列表中。
...例如
Items:[
{ title: "USA Today",
otherdata: "..."},
{ title: "WSJ",
otherdata: "..."},
{ title: "ET Weekly",
otherdata: "..."}
]
Users: [
{ ID: "joe schmo",
subscriptions" : [
{ item : "USA Today" },
{ item : "ET Weekly" }
]
}...]
在这个例子中,我想返回:
items = [ {title : "USA Today"
otherdata: "..."},
{title: "ET Weekly",
otherdata: "..."}
]
答案 0 :(得分:2)
这里有两个操作,一个用于将用户序列压缩到下标序列中,然后用每个Title
属性上的项目加入订阅:
var query = from user in users
from subscription in user.subscriptions
join item in items
on subscription.Title equals item.Title
select item;