假设我有以下类型的对象结构:(我当然不是,它只是一个例子)
public class Man
{
public Woman Wife { get; set; }
public List<Animal> Pets { get; set; }
}
public class Woman
{
public string Name { get; set; }
}
public class Animal
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想写一个Linq谓词,它确定Man一个宠物是否拥有与他妻子同名的宠物.
我无法弄清楚如何做到这一点,因为当我写这个x.Pets.Any(...)位时,我现在正在使用Pet对象,我无法引用父级Man的Wife属性.
[编辑:以上陈述不正确.这是一个错误的假设.]
有没有办法构建这个谓词来获得我想要的逻辑?
我想你想要:
var query = men.Where(man => man.Pets.Any(pet => pet.Name == man.Wife.Name));
Run Code Online (Sandbox Code Playgroud)