我有2个班级:
public class ObjectA
{
public int Id;
public string Name;
}
public class ObjectB
{
public int Id;
public string Name;
public List<ObjectA> ListOfObjectA;
}
Run Code Online (Sandbox Code Playgroud)
所以我有两个列表:一个是ObjectB(ListObjectB),另一个是包含ObjectA的id列表(称为ListOfIdsA).如果我想获得ObjectB的列表,其中ObjectB.ListOfObjectA在ListOfIdsA中.
我的第一个(和错误的)方法是
ListObjectB.Where(p=> ListOfIdsA.Contains(p.ListOfObjectA.Select(b=>b.Id)))
Run Code Online (Sandbox Code Playgroud)
但这显然会引发异常.我谷歌它,stackoverflowed,但我认为我的搜索技能在这方面不是很好,任何人都可以给这个忍者!(优选在lambda表达式中)