2015-12-25 41 views
4

從包含以下信息(ID,姓名,聯繫地址,郵編)對象的列表:查找記錄與同類和不同領域

1,Andrea,15th St,123 
2,Sarah,15th St,124 
3,Andrea,15th St,134 
4,Andrea,16th St,124 

我希望檢索具有相同的名稱和地址線但代碼不同。在這個例子中:

1,Andrea,15th St,123 
3,Andrea,15th St,134 

我已經和Linq一起去了解它,第一次瞭解它。我能夠找到重複項:

var sameEmail = 
     from l in list 
     group l by new { l.name, l.address} into na 
     where na.Count() > 1 
     select na.Key; 

但我找不到一種方法來確保我只能得到不同代碼的記錄。因此,我也會得到最後一行,但由於它有相同的代碼,我不想要它。有沒有辦法與Linq做到這一點?或在C#中的任何其他方式?

謝謝!

回答

5

你可以使用Distinct,以獲得不同的值

var sameEmail = 
    from l in list 
    group l by new { l.name, l.address} into na 
    where na.Select(a => a.code).Distinct().Count() > 1 
    select na.Key; 
+0

唉。現在很明顯。非常感謝! – coconut