2012-05-17 106 views
1

我有两个集合,Customer和Email。客户有一个Customer.Email字段,Email实体有一个Email.From字段。我需要从Email集合中获取所有实体,其中Customer.Email等于Email.From,但我需要它返回电子邮件实体,而不仅仅是Email.From字段。在2个独立实体集合中查找公共实体

任何想法?

感谢

回答

2
List<Email> result = emails.Where(p => customers.Any(q => q.Email == p.From)).ToList(); 
+0

谢谢!我的链接经验约3小时:/这完美的工作。谢谢! –

+0

有没有办法返回与之匹配的客户实体?或者甚至只是Customer.Id,因为我需要在两个 –

+0

Nevermind之间建立关系。 var result = customerCollection.Where(p => email.From == p.Email); –

1

这会影响效率,因为在邮件中的每个条目将有直到它找到正确的条目在客户中的每个条目匹配。

不过

var results = Emails.Where(e => e.From == customers.Select (c => c.Email)); 

OR

var results = Emails.Where(e => Customers.Any(c => c.Email == e.From)); 
相关问题