无限极递归树形
递归方法
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
}
}
类型
public class NewsType
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
public List<NewsType> children { get; set; }
}
调用方法
public void ddd()
{
NewsType rootRoot = new NewsType
{
Id = 0,
ParentId = 0,
Name = "根节点"
};
var dc = new List<NewsType>()
{
new NewsType {Id = 1,
ParentId = 0,
Name = "1"
},
new NewsType {Id = 2,
ParentId = 0,
Name = "2" },
new NewsType {Id = 3,
ParentId = 1,
Name = "1.1" },
new NewsType {Id = 4,
ParentId = 1,
Name = "1.2" },
new NewsType {Id = 5,
ParentId = 2,
Name = "2.1" },
new NewsType {Id = 6,
ParentId = 2,
Name = "2.2" },
new NewsType {Id = 7,
ParentId = 3,
Name = "1.1.1" },
new NewsType {Id = 8,
ParentId = 3,
Name = "1.1.2" },
};
LoopToAppendChildren(dc, rootRoot);
}

浙公网安备 33010602011771号