C# 如何使用linq访问集合中var返回的集合结果

C# 如何使用linq访问集合中var返回的集合结果,c#,asp.net,linq,linq-to-sql,linq-to-entities,C#,Asp.net,Linq,Linq To Sql,Linq To Entities,我有一个存储在变量中的集合。我需要使用where子句中的var结果值遍历Iqueryable对象集合。任何建议都会有帮助 var collection = courses.Where(r => r.deptTAG == deptTag).Select(d => d.dept_NO); IQueryable<courses> query = getcourses(); if (collection != null) { que

我有一个存储在变量中的集合。我需要使用where子句中的var结果值遍历Iqueryable对象集合。任何建议都会有帮助

var collection = courses.Where(r => r.deptTAG == deptTag).Select(d => d.dept_NO);  

IQueryable<courses> query = getcourses();                

if (collection != null)
 {
   query = query.Where(c => c.dept_NO == collection.????);
   shipments = query.ToList();
  }

  return shipments ;
var collection=courses.Where(r=>r.deptTAG==deptTAG)。选择(d=>d.dept\u NO);
IQueryable query=getcourses();
if(集合!=null)
{
查询=查询。其中(c=>c.dept\u NO==集合);
装运=query.ToList();
}
退货;

您需要在两个
IEnumerable
上使用
join

query = from q in query
    join r in collection
    on q.dept_no equals r.dept_no
    select q;

您想对该集合做什么?我需要检查存储在“var collection”中的“dept_no”是否在基于dept_no的Iqueryable对象集合中可用。实际上,我需要遍历Iqueryable对象集合以检查var返回的值。是否要获取存储在中的
dept_no
收藏
?是。但我的问题是,我可以使用foreach循环实现它,还是有更好的选择。为什么需要集合?
shippings=getcourses().Where(r=>r.deptTAG==deptTAG.ToList()有什么问题我无法从var集合访问dept\u no字段。q、 部门号等于r部门号。在这里,我没有看到intellisense中提示的dept_no。永远不要相信intellisense知道一切,尤其是在处理动态和变量时。如果您键入r.dept_no,您是否看到指示错误下划线?user1895086-您的解决方案非常有效。我把我的两个收藏都换成了IEnumerables。很高兴能为您服务!