private static string RecursionMenuTree(List<Menu> menus, long parentID = 0, StringBuilder sb = null)
        {
            if (sb == null)
            {
                sb = new StringBuilder();
            }

            var parentMenus = menus.Where(x => x.ParentID == parentID).ToList();

            parentMenus.ForEach(x =>
             {
                 sb.Append("{");
                 sb.AppendFormat("\"ID\":\"{0}\",", x.ID.ToString());
                 sb.AppendFormat("\"Path\":\"{0}\",", x.Path);
                 sb.AppendFormat("\"MenuName\":\"{0}\",", x.MenuName);
                 sb.AppendFormat("\"OrderNum\":\"{0}\",", x.OrderNum.ToString());
                 sb.AppendFormat("\"Type\":\"{0}\"", x.Type.ToString());
                 var children = menus.Where(c => c.ParentID == x.ID);
                 if (children?.Count() > 0)
                 {
                     sb.Append("\"children\":[");
                     RecursionMenuTree(menus, x.ID, sb);
                     sb.Append("]");
                 }
                 sb.Append("},");
             });
            return sb.ToString();
        }

 

相关文章: