C# 如何从列表中删除重复用户但合并其角色
假设我有一个姓名和角色列表: 列表中的每个项目都属于PersonDetails类型:C# 如何从列表中删除重复用户但合并其角色,c#,linq,C#,Linq,假设我有一个姓名和角色列表: 列表中的每个项目都属于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; } } 公共类个人信息 {
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; }
}
公共类个人信息
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共列表角色{get;set;}
}
公共阶级角色
{
公共字符串名称{get;set;}
}
因此,在我列出的这些项目中,我可能有以下内容:
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()
}
我还没有测试过这个,但我认为它会起作用