我有一个人物对象A,该人有一个名为“ID”的属性。 我还有一个人物对象的集合B,而personcountry对象有一个属性personId。
现在我想选择集合A中的所有人,集合B中有一个对象,其personId。
所以这个数据
person (collection A List[Person])
person id name
1 John
2 John
3 John2
4 Pete
5 Bill
6 Samantha
和此集合B(列表[国家])
country id personid
1 1
1 3
2 5
我希望来自集合A的人员记录ID为1,3和<。
我确实设法用交叉方法用2个int集合来做,但是在使用这两个对象集合时我被困住了。
答案 0 :(得分:4)
var q = Persons.Where(p => Countries.Any(c => p.Id== c.PersonId))
答案 1 :(得分:0)
我要加入
var query = (from p in persons
join pc in personcountry on p.Id equals pc.PersonId
select p).AsEnumerable();