C#生成树形结构泛型类

2021-06-27 01:08

阅读:560

标签:实体类   ict   mod   parent   his   col   sage   todo   list   

C#生成树形结构泛型类,使用方法: ToTree.ToDo(models) 

public class ToTreewhere T : IToTreeModel
{
    public static List ToDo(List models)
    {
        var dtoMap = new Dictionaryint, T>();
        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; }
    List children { 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 List children { get; set; }
        public void AddChilrden(IToTreeModel node)
        {
            if (children == null)
                children = new List();
            this.children.Add(node);
        }
    }

 

C#生成树形结构泛型类

标签:实体类   ict   mod   parent   his   col   sage   todo   list   

原文地址:https://www.cnblogs.com/ANPY/p/10089819.html


评论


亲,登录后才可以留言!