如何使用Linq进行多级父子排序?

Ten*_*s T 5 c# linq sorting linq-to-sql

如果我有一个如下所示的表结构,如何使用Linq进行多级父子排序:

[Table: Sections]  
Id   Seq   Name        ParentSectionId  
1    1     TOP         NULL  
2    1     AAAA        1  
3    2     SSSS        1
4    3     DDDD        1  
5    1     SectionA1   2
6    2     SectionA2   2  
7    1     SectionS1   3  
8    3     ASummary    2  

预期排序结果:

TOP  
  AAAA  
    SectionA1  
    SectionA2  
    ASummary  
  SSSS  
    SectionS1  
  DDDD  

Aar*_*ght 7

使用邻接列表执行分层搜索/排序并不容易,尤其是在Linq中.

我不会在这里编写一大块代码来执行此操作,而是将您推荐给已经完成此操作的其他人:

Linq AsHierarchy()扩展方法

这会将邻接列表转换为实际的树结构,然后以分层方式轻松显示/搜索/排序.