c# - 有没有一种通过 linq 自行分解列表的好方法
问题描述
我正在寻找一种方法来分解包含组和用户的列表。问题是一个组可能是仅由用户、其他组甚至两者兼而有之的结果。如果一个组已经在列表中(并且全部应该是),我想加入用户。目标应该是没有子组的列表,并且所有组都应该只包含用户。
例如:有一个名为“所有员工”的组,由具有用户的子组组成。我需要“所有员工”组中的所有用户而不是子组。我已经尝试过类似下面的代码。有一个更好的方法吗?因为我的代码不会解散所有子组。
foreach (var g in Usergroup)
{
if (g.groups != null)
{
foreach (var t in g.groups)
{
foreach (var z in Usergroup)
{
if (z.Name == t.Name)
{
if (g.Users != null && z.Users != null)
{
UserMapping[] tmp = new UserMapping[g.Users.Length + z.Users.Length];
g.Users.CopyTo(tmp, 0);
z.Users.CopyTo(tmp, g.Users.Length);
g.Users = tmp.GroupBy(p => p.Name).Select(grp => grp.First()).ToArray();
}
}
}
}
}
}
internal class GroupUserClassMapping
{
public string Name { get; set; }
public UserMapping[] Users { get; set; }
public GroupsMapping[] groups { get; set; }
}
非常感谢!
问候牙医
解决方案
推荐阅读
- c++ - 对聚合执行操作
- c# - 如果在 C# 中存在 2D 游戏,则防止实例化预制件被重新实例化
- python - 试图整理两个不同系列的多级索引熊猫
- reactjs - React:为什么 Babel 不填充 String.prototype.replaceAll?
- git - 自动 - 在将分支合并到 master 时增加 master 上的补丁版本
- java - 如何使用 mapStruct 将 Long 递归转换为 LocalDateTime?
- mysql - 使用 mediawiki ,我怎样才能获得给定质量的随机维基百科页面?
- microsoft-graph-api - 使用应用程序权限向 Teams 频道发布消息 - 文档不正确?
- .net - 防止缓存在更新返回的对象时不同步
- java - 从Java中的String数组中识别最大距离元素