首先是对象的属性:
public class ResChapter
{
public int Id { get; set; }
public string Name { get; set; }
public int Pid { get; set; }
public List<ResChapter> Children { get; set; }
}
数据我就不贴了,大概就是很多个数据,有父级Id的那种
下面是实现层级树的方法
public class ToTree
{
var chapterlist = 你的所有数据集合;
var dic = new Dictionary<int, ResChapter>(chapterlist.Count);
foreach (var chapter in chapterlist)
{
dic.Add(chapter.Id, chapter);
}
foreach (var chapter in dic.Values)
{
if (dic.ContainsKey(chapter.Pid))
{
if (dic[chapter.Pid].Children == null)
dic[chapter.Pid].Children = new List<ResChapter>();
dic[chapter.Pid].Children.Add(chapter);
}
}
return dic.Values.Where(t => t.Pid == 0).ToList();
}