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

时间:2013-09-12 13:22:27

标签: c# sorting logic hierarchy

我正在比较用户组,以查看哪些组是其他组的成员。然后我需要从最大范围到最小范围订购它们。任何语言的例子都可以。我知道一系列循环可以实现这一目标,但未能成功完成。这是我的例子。我有两个列表如下:

 IT          Staff 
 Teacher     Staff 
 Engineer    IT 
 Engineer    Staff

我们可以看到IT部门是员工的一部分,教师是员工的一部分,工程师是IT的一部分,而工程师是员工的一部分。我需要最终得到类似的东西:

 Staff
 IT Teacher
 Engineer

此处工程师列在教师之下并不属于教师组,这无关紧要。我只需要获得最大范围到最小的订单。由于我知道IT和教师处于同一水平,而工程师比IT小,因此IT也必须小于教师。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

1.从两列中获取唯一项目:

  
      
  • IT
  •   
  • 老师
  •   
  • 工程师
  •   
  • 员工
  •   

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)
  •   
  • IT(99)|老师(99)
  •   
  • 工程师(98)
  •