Mike 发表于 2021-7-30 18:23:03

Recursion之Demo

Model:
public class PerSon
    {
      
      public string id { get; set; }
      
      public string name { get; set; }
      
      public int age { get; set; }
      
      public int? PerSonId { get; set; }
      /// <summary>
      /// 该分类的子分类
      /// </summary>
      public List<PerSon> items { get; set; }
    }Code:
class Program
    {
      static List<PerSon> list = new List<PerSon>()
            {
                new PerSon(){ id = "1", age=21, name="张飞1", PerSonId = null },
                new PerSon(){ id = "2", age=22, name="张飞7", PerSonId = null },
                new PerSon(){ id = "3", age=23, name="张飞8", PerSonId = null },
                new PerSon(){ id = "4", age=24, name="张飞5", PerSonId = 1 },
                new PerSon(){ id = "5", age=25, name="张飞4", PerSonId = 2 },
                new PerSon(){ id = "6", age=27, name="张飞3", PerSonId = 3 },
                new PerSon(){ id = "7", age=28, name="张1", PerSonId = 3 },
                new PerSon(){ id = "8", age=29, name="张2", PerSonId = 4 },
                new PerSon(){ id = "9", age=30, name="张飞1", PerSonId = 5 },
            };
      static void Main(string[] args)
      {
            var ViewData = new List<PerSon>();
            list.ForEach((u) =>
            {
                if (u.PerSonId == null)
                {
                  ViewData.Add(new PerSon()
                  {
                        age = u.age,
                        id = u.id,
                        name = u.name,
                        items = getitem(u.id)
                  });
                }
            });
            var a = ViewData;
      }
      public static List<PerSon> getitem(string id)
      {
            List<PerSon> perSons = new List<PerSon>();
            foreach (var items in list)
            {
                if (items.PerSonId.ToString() == id)
                {
                  perSons.Add(new PerSon()
                  {
                        age = items.age,
                        id = items.id,
                        name = items.name,
                        PerSonId = Convert.ToInt32(id),
                        items = getitem(items.id)
                  });
                }
            }
            return perSons;
      }
    }


文档来源:51CTO技术博客https://blog.51cto.com/u_15316096/3209790
页: [1]
查看完整版本: Recursion之Demo