0

我有一个人对象的集合 A,这个人有一个名为“ID”的属性。我还有一个personcountry对象的集合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 (List[Country])

country id  personid
1             1
1             3
2             5

我想要集合 A 中 id 为 1,3 和 5 的人员记录。

我确实设法使用 intersect 方法使用 2 个整数集合来做到这一点,但是在使用这两个对象集合时我被卡住了。

4

2 回答 2

4
 var q = Persons.Where(p => Countries.Any(c => p.Id== c.PersonId))
于 2012-08-30T13:26:35.943 回答
0

我会加入

var query = (from p in persons
            join pc in personcountry on p.Id equals pc.PersonId
            select p).AsEnumerable();
于 2012-08-30T13:27:07.693 回答