解决方案 »

  1.   

    比如讲故事:从前有座山,山上有座庙,庙前有个卖油翁,卖油翁对人说:从前有座山,山上有座庙,庙前有个卖油翁,卖油翁对人说:从前有座山,山上有座庙,庙前有个卖油翁,卖油翁对人说:用循环:for(int a=0;a<100;a++){讲故事朗读:从前有座山,山上有座庙,庙前有个卖油翁,卖油翁对人说:}用递归:讲故事(从前有座山,山上有座庙,庙前有个卖油翁,卖油翁对人说:);private void 讲故事(string 故事内容)
    {
      if(关键在设置终止条件,否则,循环不断。)return;
       讲故事朗读:故事内容
       讲故事(故事内容);
    }
      

  2.   

    哎,现在问题还没解决我现在用的递归代码
                LinqDBOperation dbo = new LinqDBOperation();
                List<ModelMenuView> root = new List<ModelMenuView>();
                List<ModelMenuView> menuList = dbo.GetDatas<ModelMenuView>().ToList();
                Func<ModelMenuView, List<ModelMenuView>, ModelMenuView> func = (mmv, list) => { return null; };            func = (mmv, list) =>
                {
                    if (list.Count(x => x.pId == mmv.id) > 0)
                    {
                        list
                            .Where(x => x.pId == mmv.id)
                            .ToList()
                            .ForEach(y =>
                            {
                                mmv.nodes = new List<ModelMenuView>();
                                mmv.nodes.Add(func(y, list));
                            });
                    }                return mmv;
                };            root.Add(func(menuList.FirstOrDefault(x=>x.pId== "0"), menuList));
        menuList.Add(new ModelMenuView() { id = "1", name = "test1", pId = "0" });
        menuList.Add(new ModelMenuView() { id = "2", name = "test2", pId = "1" });
        menuList.Add(new ModelMenuView() { id = "3", name = "test3", pId = "1" });
        menuList.Add(new ModelMenuView() { id = "4", name = "test4", pId = "2" });
        menuList.Add(new ModelMenuView() { id = "5", name = "test5", pId = "3" });
        menuList.Add(new ModelMenuView() { id = "6", name = "test6", pId = "4" });
        menuList.Add(new ModelMenuView() { id = "7", name = "test7", pId = "5" });
        menuList.Add(new ModelMenuView() { id = "8", name = "test8", pId = "6" });
        menuList.Add(new ModelMenuView() { id = "9", name = "test9", pId = "7" });
        menuList.Add(new ModelMenuView() { id = "10", name = "test10", pId = "8" });
        menuList.Add(new ModelMenuView() { id = "11", name = "test11", pId = "9" });
        menuList.Add(new ModelMenuView() { id = "12", name = "test12", pId = "10" });菜单数据没有递归出我想要的数据呢。请问各位大哥该如何修改啊?
        public class ModelMenuView
        {
            public string id { get; set; }
            public string name { get; set; }
            public string pId { get; set; }        private List<ModelMenuView> _children = new List<ModelMenuView>();
            public List<ModelMenuView> nodes
            {
                get { return _children; }
                set { _children = value; }
            }
        }
      

  3.   

    你看看linq产生的sql语句放到数据库里查询的数据对不对呗