选择“递归列表”
本文关键字:递归列表 列表 递归 选择 | 更新日期: 2023-09-27 18:32:27
我有一个数据表,其中包含有关目录树的信息 - 文件夹和文档该表包括列 ID 和列父 ID
+----+--------+-----------+---------+
| id | parent | is_folder | details |
+----+--------+-----------+---------+
| 1 | | TRUE | … |
| 2 | 1 | TRUE | … |
| 3 | 1 | TRUE | … |
| 4 | 1 | FALSE | … |
| 5 | 2 | TRUE | … |
| 6 | 5 | FALSE | … |
| 7 | 5 | TRUE | … |
| 8 | 7 | FALSE | … |
| 9 | 3 | FALSE | … |
| 10 | 3 | FALSE | … |
+----+--------+-----------+---------+
我想使这个列表将被构建为递归目录树
它的回归IEnumerable<item>
public class item
{
public bool isFolder { get; set; }
public int id { get; set; }
public int parentId { get; set; } //should???
public string details { get; set; }
public IEnumerable<item> children { get; set; }
}
像
往常一样为每行创建一个项目。然后,执行如下操作来创建子项:
foreach(var item in items)
item.children = items.Where(x => x.parentId == item.id);