我正在尝试从项目列表中收集IEnumerable<Item>
。
这是我正在使用的代码:
IEnumerable<Project> projects;
List<Item> itemList = db.Items.ToList();
IEnumerable<Items> item = itemList.Where(i => i.ProjectID == /*the ID of each project from projects*/)
我也尝试过这条路线:IEnumerable<Items> item = from i in itemList where i.ProjectID == /*the ID of each project from projects*/ select i;
如何遍历每个项目以收集所有相关项?
答案 0 :(得分:5)
IEnumerable<Items> item = from i in itemList
where projects.Any(p => p.ID == i.ProjectId)
select i;
或使用您的方法语法
IEnumerable<Items> item = itemList.Where(i => projects.Any(p => p.ID == i.ProjectID));
答案 1 :(得分:0)
有很多方法可以做到这一点。像那些:
IEnumerable<Items> items = projects.SelectMany(p => itemsList.Where(i => i.ProjectID == p.ID))
或
IEnumerable<Items> items = itemsList.Where(i => projects.Any(p => p.ID == i.ProjectID))
答案 2 :(得分:0)
您也可以使用Any()
:
join
var item = from i in itemList
join p in projects on i.ProjectId equals p.ProjectId
select i;