我有一個包含一個扁平的父 - 子關係的枚舉列表:LINQ的投影到父和子對象圖
ParentGuid1, ParentName1, ChildGuid1, ChildName1
ParentGuid1, ParentName1, ChildGuid2, ChildName2
ParentGuid2, ParentName2, ChildGuid3, ChildName3
ParentGuid2, ParentName2, ChildGuid4, ChildName4
我已經定義了一個子類和一個父類,其包括List<Child>
屬性稱爲兒童。
我可以使用linq在對象圖上創建每個唯一ParentGuid的父類的一個實例,引用與該父級關聯的子級填充的List。
沿着這條的線東西(注意,此代碼不編譯):
myFlattenedHierarchy.Select(p => new Parent
{Guid = p.ParentGuid,
Name = p.ParentName,
Children = myFlattenedHierarchy.Where(c => c.ParentGuid == p.ParentGuid).Select(c => new Child{Guid = c.ChildGuid, Name = c.ChildName})
});
該圖只有2層深,即沒有周期的「Parent 1- * Child」?或者,GUID的全局和每個「ChildGuid」都可能是「ParentGuid」? – user7116