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);
}
}
}