我需要比较两个相同结构的对象。
每种类型都包含其他类型的集合。
ProcessA - > ChildrenA(链接)
ProcessB - > ChildrenB(链接)
如何使用LINQ查询这两个对象。 并说:
ProcessA 的 集合childrenA 中的哪些项目存在于 ProcessB 的集合ChildrenB 。
基本上是 层次结构 的第二级的加入。 我似乎无法在 VB.NET
中找到使用Linq加入它们的方法提前谢谢!
干杯
答案 0 :(得分:0)
你到底想要达到什么目的?如果你只想在processB中存在的processA的子节点你不需要连接,你可以这样写:
var Matches = ProcessA.ChildrenA.Where(a=>ProcessB.ChildrenB.Any(b=>b==a));
更新:对于实体框架(不要用linq对象执行此操作,会非常慢!但是这会被转换为好的SQL)
var q = from a in ProcessA.ChildrenA
from b in ProcessB.ChildrenB
where a.Name == b.Name
select new {a,b}