//將一個平行數據,整理爲一個樹形數據
private void Test1(List<myType> allTypeList)
{
//查找父節點
List<myType> rootType = allTypeList.Where(o => o.ParentId == -1).ToList();
//遞歸主函數
Action<myType> addChildType = null;
addChildType
= (typeInfo =>
{
var childInfo = allTypeList.Where(o => o.ParentId == typeInfo.id);
if (childInfo.IsNullOrDbNull())
return;
childInfo.All(
o =>
{
typeInfo.ChildTypes.Add(o);
addChildType(o);
return true;
});
});
//遞歸調用
allTypeList.ForEach(
o =>
{
addChildType(o);
});
}ide