假设我有一个名单和角色列表的人员列表:
列表中的每个项目都是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; }
}
所以在我的这些项目列表中,我可能会有以下内容:
这就是它当前的样子,但是因为它与我希望我的列表是同一个人:
有谁能告诉我如何更改我的项目列表?
答案 0 :(得分: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()
}
我还没有测试过这个,但我认为它会起作用。