我最难将列表(Of Folder)转换为层次结构.
Public Class Folder
Public Property FolderID() As Integer
Public Property Name() As String
Public Property ParentFolderID() As Integer
Public Property Children() as IEnumerable(Of Folder)
End Class
Run Code Online (Sandbox Code Playgroud)
我需要返回填充了Children的List(Of Folder).
我从数据库中的数据构建一个List(Of Folder).
{1,"文件夹1",没有} {2,"文件夹2",1} {3,"文件夹3",2} {4,"文件夹4",3} {5,"文件夹5",没什么}
我无法弄清楚如何以递归方式将子文件夹移动到其父级的Children属性中.
我想用LINQ做这个.
任何帮助是极大的赞赏.
更新
谢谢你的回答,但不是那里.根据你的答案,我想出了几乎可行的.
Dim list = (From folder in folderList Select New Folder() With {
.FolderID = folder.FolderID,
.Name = folder.Name,
.ParentFolderID = folder.ParentFolderID,
.Children = (From child in folderList
Where child.ParentFolderID = item.FolderID).ToList()}).ToList()
{1, "Root", Nothing}
{2, "Child", 1}
{3, …Run Code Online (Sandbox Code Playgroud)