2012-05-17 149 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)); 
相關問題