Bir listeyi (Klasörün) hiyerarşiye dönüştürmek için en zor zamanı yaşıyorum.hiyerarşiye ait düz liste
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
Çocuklar (Klasörün) nüfuslu Çocuklar ile birlikte döndürülmesi gerekiyor.
Veritabanındaki verilerden bir Klasör Listesi yapıyorum.
{1, "Dosya 1", hiçbir} {2, "Dosya" 2, 1} {3, "Dosya" 3, 2} {4, "Dosya" 4, 3} {5 , "Klasör 5", Hiçbir şey}
Çocuk klasörlerini, üst klasörünün Children özelliğine nasıl yinelemeli olarak taşıyacağımı anlayamıyorum.
Bunu LINQ ile yapmak istiyorum.
Her türlü yardım büyük beğeni topluyor.
Güncelleme ama oldukça orada, Cevabınız için teşekkür ederiz. Cevabınıza dayanarak, neredeyse işe yarayan ile ortaya çıktım.
Root
--Child
Child
--Grand Child
Grand Child
gibi görünmelidir:
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}
Ben her üç klasörlerin bir listesini almak
Root
--Child
----Grand Child
ToLookup uzantısının güzel bir kullanımı. –