2012-07-20 53 views
0

說我有誰有一個名字和角色的列表清單:如何從列表中刪除重複的用戶,但合併的角色

列表中的每個產品類型PersonDetails的:

public class PersonDetails 
{ 
public int Id { get; set; } 
public string Name { get; set; } 
public List<Role> Roles { get; set; } 
} 

public class Role 
{ 
public string Name { get; set; } 
} 

所以在我的這些物品的清單,我可能有以下幾點:

  1. 編號23埃裏克其角色包含Role.Name =「經理人」
  2. 編號23埃裏克WH作用OSE角色包含Role.Name =「CEO」角色
  3. 編號23埃裏克其角色包含Role.Name =「CIO」

一個角色,這樣是怎麼回事,但目前因爲它是同樣的人,我希望我的名單是:

  1. 編號23埃裏克其角色包括「經理人」,「CEO」,「CIO」

誰能告訴我怎樣我的項目的列表改變爲是這樣嗎?

回答

2

試試這個:

from details in detailsList 
group details by new {Id = details.Id, Name = details.Name} into groupedDetails 
select new PersonDetails() 
{ 
    Id = groupedDetails.Key.Id, 
    Name = groupingDetails.Key.Name, 
    Roles = groupingDetails.SelectMany(member => member.Roles).ToList() 
} 

我還沒有尚未測試這一點,但我認爲它會工作。

+0

對我很好。 – Enigmativity 2012-07-20 04:34:11

相關問題