从集合A中获取对象,其中A的ID存在于B对象的集合中

时间:2012-08-30 13:23:25

标签: c# linq

我有一个人物对象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集合来做,但是在使用这两个对象集合时我被困住了。

2 个答案:

答案 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();