2012-07-20 59 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

相关问题