Mam najtrudniejszy czas na przekształcenie listy (folderu) w hierarchię.Lista z listą do hierarchii
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
Muszę zwrócić listę (z folderu) z dziećmi.
Buduję listę (folderu) z danych w bazie danych.
{1, "Folder 1" nic} {2 "katalog 2", 1} {3 "Folder 3", 2} {4 "Folder 4", 3} {5 , "Folder 5", Nic}
Nie mogę określić, jak rekursywnie przenieść foldery podrzędne do właściwości Dzieci ich rodzica.
Chciałbym to zrobić z LINQ.
Każda pomoc jest bardzo doceniana.
Aktualizacja
Dziękuję za odpowiedź, ale nie całkiem tam. W oparciu o twoją odpowiedź wymyśliłem to, co prawie działa.
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}
uzyskać listę wszystkich trzech folderów:
Root
--Child
Child
--Grand Child
Grand Child
powinna wyglądać następująco:
Root
--Child
----Grand Child
Przyjemne użycie rozszerzenia ToLookup. –