C# 如何按层次结构对两列进行排序

本文关键字:两列 排序 何按 层次结构 | 更新日期: 2023-09-27 18:31:01

我正在比较用户组,看看哪些组是其他组的成员。 然后,我需要从最大范围到最小范围对它们进行排序。 任何语言的示例都可以。 我知道一系列循环可以完成此操作,但无法成功做到这一点。 这是我的例子。 我有两个列表如下:

 IT          Staff 
 Teacher     Staff 
 Engineer    IT 
 Engineer    Staff
我们可以看到,IT部门是员工的一部分,教师是员工的一部分,工程师是

IT的一部分,工程师是员工的一部分。 我需要以这样的东西结束:

 Staff
 IT Teacher
 Engineer

在这里,工程师列在教师下方并且不属于教师组并不重要。 我只需要从最大范围到最小范围进行排序。 既然我知道IT和老师处于同一水平,工程师比IT小,IT也必须比老师小。

任何帮助将不胜感激。

C# 如何按层次结构对两列进行排序

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)