如何从列表中删除重复的用户,但合并的角色
问题描述:
说我有谁有一个名字和角色的列表清单:如何从列表中删除重复的用户,但合并的角色
列表中的每个产品类型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; }
}
所以在我的这些物品的清单,我可能有以下几点:
- 编号23埃里克其角色包含Role.Name =“经理人”
- 编号23埃里克WH作用OSE角色包含Role.Name =“CEO”角色
- 编号23埃里克其角色包含Role.Name =“CIO”
一个角色,这样是怎么回事,但目前因为它是同样的人,我希望我的名单是:
- 编号23埃里克其角色包括“经理人”,“CEO”,“CIO”
谁能告诉我怎样我的项目的列表改变为是这样吗?
答
试试这个:
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()
}
我还没有尚未测试这一点,但我认为它会工作。
对我很好。 – Enigmativity 2012-07-20 04:34:11