我有具有此依赖项的列表:
class User
{
public string Id {get; set;}
public List<ManagerGroup> ManagerGroups {get; set;}
}
class ManagerGroup
{
public string RoleId {get; set;}
public Manager[] Managers {get; set;}
}
class Manager
{
public string Id {get; set;}
}
并且想要获取Dictionary,其中
key
是唯一的Manager.Id
,value
是拥有该管理器的Users数组。如果您可以添加按某些ManagerGroup.RoleIds
排序,将非常感激。
获取所有经理并进行区分。
从
managers
迭代,并从 users
列表中过滤元素,该列表包含嵌套 Managers
列表中经理的 Id。
var managers = users.SelectMany(x => x.ManagerGroups)
.SelectMany(x => x.Managers)
.DistinctBy(x => x.Id)
.ToList();
var managerAndAssociatedUsers = managers.ToDictionary(
k => k.Id,
v => users
.Where(x => x.ManagerGroups.Any(mg => mg.Managers.Any(m => m.Id == v.Id)))
.Select(x => x.Id)
.ToArray());