gpt4 book ai didi

C# 从列表中递归创建 TreeView

转载 作者:行者123 更新时间:2023-11-30 13:00:40 25 4
gpt4 key购买 nike

我目前有一个以前以编程方式生成的项目列表(元组),我现在正尝试以递归方式将其传递到 TreeView 中,但在使其正常工作方面遇到了一些困难。

列表示例:名称 |等级

Fruits | 0
Apples | 1
Green Apples | 2
Golden Delicious | 3
Granny Smith | 3
Cox Orange Pipper | 2
Red Apples | 2
Pink Lady | 3
Red Delicious | 3
Oranges | 1
Blood | 2
Mandarins | 2
Vegetables | 0
Lettuce | 1
Iceberg | 2
Romain | 2

所以我的输出是:

Fruits (0)
- Apples (1)
-- Green Apples (2)
--- Granny Smith (3)
--- Golden Delicious (3)
-- Cox Orange Pipper(2)
-- Red Apples (2)
--- Pink Lady (3)
--- Red Delicious (3)
- Oranges (1)
-- Blood (2)
-- Mandarins (2)
Vegetables (0)
- Lettuce (1)
-- Iceberg (2)
-- Romain (2)

注意:请参阅下面 LarsTech 的回答以获得完美的工作解决方案。谢谢你!

我已经删除了错误的代码/尝试,我会把这一切留给有同样问题的其他人。

最佳答案

每个节点的“级别”值是您对父节点的唯一引用,因此您可以保留一个级别字典来引用用于该级别的最后一个节点:

Dictionary<int, TreeNode> lastParent = new Dictionary<int, TreeNode>();
foreach (Tuple<string, int> food in foods) {
TreeNodeCollection items;
if (food.Item2 == 0) {
items = treeView1.Nodes;
} else {
items = lastParent[food.Item2 - 1].Nodes;
}
TreeNode treeNode = items.Add(food.Item1);
if (lastParent.ContainsKey(food.Item2)) {
lastParent[food.Item2] = treeNode;
} else {
lastParent.Add(food.Item2, treeNode);
}
}
treeView1.ExpandAll();

关于C# 从列表中递归创建 TreeView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21879635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com