リスト(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
子どもが入っているリスト(Of Folder)を返す必要があります。
データベースのデータからList(Of Folder)を構築します。
{1、 "フォルダ1"、何も} {2、 "フォルダ2"、1} {3、 "フォルダ3"、2} {4、 "フォルダ4"、3} {5 、 "Folder 5"、Nothing}
子フォルダを再帰的に親の子プロパティに移動する方法を知ることはできません。
私はLINQでこれを行いたいと思います。
ご協力いただきまして誠にありがとうございます。
更新はなく、かなりそこに、あなたの答えをいただき、ありがとうございます。あなたの答えに基づいて、私はこれを考え出しました。
Root
--Child
Child
--Grand Child
Grand Child
は、次のようになります:
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, "Grand Child", 2}
は、私はすべての3つのフォルダの一覧を取得
Root
--Child
----Grand Child
ToLookup拡張機能をうまく使います。 –