【问题标题】:How to access the collection result returned by var in a collection using linq如何使用linq访问集合中var返回的集合结果
【发布时间】:2017-02-02 18:06:06
【问题描述】:

我有一个存储在变量中的集合。我需要使用 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'中的'dept_no'是否在基于dept_no的Iqueryable对象集合中可用。实际上我需要遍历 Iqueryable 对象集合来检查 var 返回的值。
  • 您想获取dept_NO 存储在collection 中的项目吗?
  • 是的。但我的问题是我可以使用 foreach 循环实现它还是有更好的选择。
  • 为什么需要收藏? shipments = getcourses().Where(r =&gt; r.deptTAG == deptTag).ToList(); 有什么问题

标签: c# asp.net linq linq-to-sql linq-to-entities


【解决方案1】:

你需要在两个IEnumerables上使用join

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

【讨论】:

  • 我无法访问 var 集合中的 dept_no 字段。 q.dept_no 等于 r.dept_no 。这里我没有看到智能感知中提示的 dept_no。
  • 永远不要相信智能感知知道一切,尤其是在处理动态和变量时。如果您输入 r.dept_no ,您是否看到下划线显示错误?
  • user1895086 - 您的解决方案效果很好。我将我的两个集合都转换为 IEnumerables。
  • 很高兴为您服务!
猜你喜欢
  • 1970-01-01
  • 2017-01-12
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-31
  • 2016-05-10
相关资源
最近更新 更多