C# 如何按层次结构对两列进行排序
本文关键字:两列 排序 何按 层次结构 | 更新日期: 2023-09-27 18:31:01
我正在比较用户组,看看哪些组是其他组的成员。 然后,我需要从最大范围到最小范围对它们进行排序。 任何语言的示例都可以。 我知道一系列循环可以完成此操作,但无法成功做到这一点。 这是我的例子。 我有两个列表如下:
IT Staff
Teacher Staff
Engineer IT
Engineer Staff
我们可以看到,IT部门是员工的一部分,教师是员工的一部分,工程师是IT的一部分,工程师是员工的一部分。 我需要以这样的东西结束:
Staff
IT Teacher
Engineer
在这里,工程师列在教师下方并且不属于教师组并不重要。 我只需要从最大范围到最小范围进行排序。 既然我知道IT和老师处于同一水平,工程师比IT小,IT也必须比老师小。
任何帮助将不胜感激。
1.从两列中获取唯一项目:
- 它
- 老师
- 工程师
- 员工
2.给每个项目一个起始重量,例如:100
- IT = 100
- 教师 = 100
- 工程师 = 100
- 工作人员 = 100
3.对于每个项目,每次出现在第一列(column[0]
)时,减去其重量1
- IT = 100 - 1 = 99
- 教师 = 100 -1 = 99
- 工程师 = 100 -1 -1 = 98
- 工作人员 = 100
4.按重量排序:
- 员工 (100)
- 信息技术 (99)|教师 (99)
- 工程师 (98)