using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; /// /// 转为树形结构 /// namespace Nirvana.Common { public class ToTree where T:IToTreeModel { public static List ToDo(List models) { var dtoMap = new Dictionary(); foreach (var item in models) { dtoMap.Add(item.Id, item); } List result = new List(); foreach (var item in dtoMap.Values) { if (item.ParentId == 0) { result.Add(item); } else { if (dtoMap.ContainsKey(item.ParentId)) { dtoMap[item.ParentId].AddChilrden(item); } } } return result; } } public interface IToTreeModel { int Id { get; set; } int ParentId { get; set; } public string Name { get; set; } List treeList { get; set; } void AddChilrden(IToTreeModel node); } public class ShowMessageUpdatesViewModel : IToTreeModel { public int Id { get; set; } public int ParentId { get; set; } public string Name { get; set; } public int status { get; set; } public List treeList { get; set; } public void AddChilrden(IToTreeModel node) { if (treeList == null) treeList = new List(); this.treeList.Add(node); } } }