Recursion之Demo

Model:

public class PerSon
    {
        [DisplayName("标识id")]
        public string id { get; set; }
        [DisplayName("名称")]
        public string name { get; set; }
        [DisplayName("年龄")]
        public int age { get; set; }
        [DisplayName("父级")]
        public int? PerSonId { get; set; }
        /// 
        /// 该分类的子分类
        /// 
        public List items { get; set; }
    }

Code:

 class Program
    {
        static List list = new List()
            {
                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();
            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 getitem(string id)
        {
            List perSons = new List();
            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;
        }
    }

 

你可能感兴趣的:(Recursion之Demo)