两个列表 - 获取常见字段?

时间:2012-06-07 01:11:47

标签: c# linq

我有两个List<object>。对象中的字段是party_id。

有没有办法,使用LINQ,只获取常见party_ids的列表?那么,也许加入Party ID上的列表然后返回带匹配的列表?

在SQL中,我想我会这样做:

SELECT DISTINCT party_id FROM table1
INNER JOIN table2 on table1.party_id = table2.party_id

感谢。

3 个答案:

答案 0 :(得分:4)

你可以试试这个:

table1.Select(r => r.party_id).Intersect(table2.Select(r => r.party_id))

答案 1 :(得分:3)

怎么样

var results = list1.Where(f => list2.Exists(s => f.party_id == s.party_id))
                   .Select(x => x.party_id);

答案 2 :(得分:3)

在没有提取Reflector并验证上述可行解决方案的实现的情况下,我认为使用Join(...)最有效:

var party_on_dude = from table1
                    join table2 on table1.party_id equals table2.party_id
                    select table1.party_id;