linq如何从父集合包含另一个集合中的子项的集合中选择父节点

tim*_*tim 4 linq

我有一个可观察的集合,即所有者和该集合有儿童项目,即狗.

现在给出了另一个当地狗狗的集合,我怎样才能选择所有在我当地的Dogs藏品中存在狗的所有者.平等条件是狗==狗.

Dan*_*ner 5

以下行应该可以解决问题.这将为您提供所有业主,其中至少有一只狗在当地名单中.

owners.Where(owner => owner.Dogs.Any(dog => localDogs.Contains(dog)))
Run Code Online (Sandbox Code Playgroud)

如果您只想要所有狗都在本地列表中的所有者,请使用以下内容.

owners.Where(owner => owner.Dogs.All(dog => localDogs.Contains(dog)))
Run Code Online (Sandbox Code Playgroud)

这种微小的差别是Any()All().