我有两个类:
public class ObjectA
{
public int Id;
public string Name;
}
public class ObjectB
{
public int Id;
public string Name;
public List<ObjectA> ListOfObjectA;
}
所以我有两个列表:一个是ObjectB的列表(ListObjectB),另一个包含ObjectA的id列表(ListOfIdsA)。如果我想要获取ObjectB列表,其中ObjectB.ListOfObjectA在ListOfIdsA中,则需要这样做。我的第一个(错误的)尝试是:
ListObjectB.Where(p=> ListOfIdsA.Contains(p.ListOfObjectA.Select(b=>b.Id)))
但是这显然会抛出一个异常。我谷歌了一下,在stackoverflow上搜索了一下,但我觉得我的搜索技巧并不好,有人能给出忍者式的答案吗?(最好用lambda表达式)
All
,另一个使用Any
。但是除非您实际需要将结果具体化,否则没有必要使用ToList()
。 - Jon Skeet