c# 공통 귀속 생성 무한 등급 트리

2432 단어
NewsType 구조:
Id
ParentId
Name
children(List)
 
public void LoopToAppendChildren(List<NewsType> all,  NewsType curItem)
{
    var subItems = all.Where(ee => ee.ParentId==curItem.Id).ToList(); 
    curItem.children = new List<NewsType>();
    curItem.children.AddRange(subItems);
    foreach (var subItem in subItems)
    {
        LoopToAppendChildren(all, subItem);// 1.1
    }
}


 
//일반 ParentId, Id, children은 반사 효율이 높지 않음
public void LoopToAppendChildren(Listall, TcurItem, string parentIdName ="ParentId", string idName ="Id", string childrenName ="children") {var subItems = all. Where(ee=> ee. GetType(). GetProperty(parentIdName). GetValue(ee,null). ToString() =curItem. GetType(). GetProperty(id) Name).GetValue(curItem,null).ToString().ToList();/뉴스1
  curItem.GetType().GetField(childrenName).SetValue(curItem, subItems);foreach(var subItem in subItems) {LoopToAppendChildren(all,subItem);/뉴스 1.1}}}

:
// NewsType rootRoot = new NewsType(); rootRoot.Id = 0; rootRoot.ParentId = 0; rootRoot.Name=" "; LoopToAppendChildren(dc.NewsType.ToList(), rootRoot);

 
 
 
원문 주소:http://www.cnblogs.com/xuejianxiyang/p/5027280.html

좋은 웹페이지 즐겨찾기