線性列表轉樹節點,線性樹節點
有如下列表數據:
0-PRODUCT
1-1012000178
2-1012610976
3-1016000022
3-1016010178
4-1061000015
5-1062000002
5-1062000002
6-1062000002
7-1062000002
8-1013502230
9-1061010180
10-1062000002
11-1062000002
4-1061010180
4-1062000002
4-1062000002
2-1013502229
3-1061010180
3-1062000002
3-1062000002
4-1061000015
5-1062000002
5-1062000002
6-1062000002
7-1062000002
8-1013502230
9-1061010180
10-1062000002
11-1062000002
2-1013502230
3-1061010180
3-1062000002
3-1062000002
2-1013502231
3-1061010180
3-1062000002
3-1062000002
2-1013502232
3-1061000059
3-1061010180
3-1062000013
3-1062000013
2-1013502233
3-1061000059
3-1061010180
3-1062000013
3-1062000013
2-1013515923
3-1013502234
4-1061000015
4-1061010180
4-1062000002
4-1062000002
3-1013502235
4-1061010180
4-1062000002
4-1062000002
2-1016010130
1-1012101332
2-1016506656
2-1016550476
2-1014060198
3-1016020078
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017012017554351.gif)
![]()
1 private void Debug0(List<LayerRelation> list)
2 {
3 int num = -1;
4 TreeNode nowNode = null;
5 TreeNode node = null;
6 treeView1.Nodes.Clear();
7 for (int i = 0; i < list.Count; i++)
8 {
9 var model = list[i];
10 node = new TreeNode(string.Format("{0}-{1}", model.LayerNum, model.MaterielCode));
11 if (model.LayerNum == 0)
12 {
13 treeView1.Nodes.Add(node);
14 }
15 else if (model.LayerNum - 1 == num)
16 {
17 nowNode.Nodes.Add(node);
18 }
19 else if (model.LayerNum == num)
20 {
21 nowNode.Parent.Nodes.Add(node);
22 }
23 else if (model.LayerNum + 1 == num)
24 {
25 TreeNode parentNode = null;
26 for (int n = 0; n < model.LayerNum; n++)
27 {
28 parentNode = parentNode == null ? nowNode.Parent : parentNode.Parent;
29 if (parentNode.Level == model.LayerNum)
30 {
31 parentNode.Parent.Nodes.Add(node);
32 num = node.Level;
33 nowNode = node;
34 parentNode = null;
35 break;
36 }
37 }
38
39 if (parentNode != null)
40 {
41 parentNode.Nodes.Add(node);
42 num = node.Level;
43 nowNode = node;
44 }
45 }
46 else
47 {
48 TreeNode topNode = null;
49 for (int n = 0; n <= (num - model.LayerNum); n++)
50 {
51 topNode = topNode == null ? nowNode.Parent : topNode.Parent;
52 }
53
54 if (topNode != null)
55 {
56 topNode.Nodes.Add(node);
57 num = node.Level;
58 nowNode = node;
59 }
60 }
61
62 num = node.Level;
63 nowNode = node;
64 }
65 }
View Code
![](https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017012017554429.jpg)