构建带树形结构数据的列表

                        int layer = 1;
                        //List<TreeDataViewModel> treecodeitme = new List<TreeDataViewModel>();
                        List<ListDataViewModel> codeitmelist = new List<ListDataViewModel>();
                        List<ListDataViewModel> codeitmelist1 = new List<ListDataViewModel>();
                        List<ListDataViewModel> layer1codelist = datalist.Where(o => o.DataLayer == layer.ToString()).ToList();
                        foreach (var layercode1 in layer1codelist)
                        {
                            layercode1.DataParentCode = "0";
                            codeitmelist.Add(layercode1);
                            codeitmelist1.Add(layercode1);
                        }
                        foreach (var ct in codeitmelist)
                        {
                            CodeItmeGetParent(datalist, ct.DataCode, 2, codeitmelist1);
                        }
                        codeitmelist1 = codeitmelist1.OrderBy(o => o.DataCode).ThenBy(o => o.DataLayer).ToList();
                        datalist = codeitmelist1;
        /// <summary>
        /// 构建带parentcoded的数据
        /// </summary>
        /// <param name="listcodeitme">所有数据</param>
        /// <param name="upcode"上级code></param>
        /// <param name="layer">层级</param>
        /// <param name="codeitmelist1">重新放置容器</param>
        private static void CodeItmeGetParent(List<ListDataViewModel> listcodeitme, string upcode, int layer, List<ListDataViewModel> codeitmelist1)
        {

            List<ListDataViewModel> treedatalist = listcodeitme.Where(o => o.DataLayer == layer.ToString() && o.DataCode.StartsWith(upcode)).ToList();
            if (treedatalist.Count() < 1)
            {
                
            }
            else
            {
                layer++;
                foreach (var tree in treedatalist)
                {
                    tree.DataParentCode = upcode;
                    codeitmelist1.Add(tree);
//递归调用 CodeItmeGetParent(listcodeitme, tree.DataCode, layer, codeitmelist1); } } }
原文地址:https://www.cnblogs.com/liuyudong0825/p/15355894.html