gpt4 book ai didi

c# - 基于字符串构建 TreeView

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:52 26 4
gpt4 key购买 nike

我很确定对此有一个简单的答案,但我为什么无法弄清楚这个问题让我很难过。我正在尝试根据 5 个字符的字符串填充 TreeView 。

public List<string> lst = new List<string>();

lst.Add("10000");
lst.Add("11000");
lst.Add("11100");
lst.Add("12000");
lst.Add("12100");
lst.Add("20000");
lst.Add("21000");
lst.Add("22000");

我正试图在这种类型的树中获得以上内容

hierarchy

同样,我敢肯定,对于许多经验丰富的 C# 开发人员来说,这已经是老生常谈了,但我只是想不出一个简单的递归或 linq 解决方案。

最佳答案

这个递归方法应该这样做:

static TreeNode[] GetNodes(IEnumerable<string> items, string prefix = "")
{
int preLen = prefix.Length;

// items that match the current prefix and have a nonzero character right after
// the prefix
var candidates = items.Where(i => i.Length > preLen &&
i[preLen] != '0' &&
i.StartsWith(prefix));

// create nodes from candidates that have a 0 two characters after the prefix.
// their child nodes are recursively generated from the candidate list
return candidates.Where(i => i.Length > preLen + 1 && i[preLen + 1] == '0')
.Select(i =>
new TreeNode(i, GetNodes(candidates, prefix + i[preLen])))
.ToArray();
}

你可以像这样调用它:

treeView.Nodes.AddRange(GetNodes(lst));

关于c# - 基于字符串构建 TreeView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037395/

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