我想根据前两个字符创建字符串的分层视图。
如果字符串是: AAAA,AAAA,BBDD,AABB,AACC,BBDD,BBEE
我想创建一个如下所示的树视图:
AA
AAAA
AABB
AACC
BB
BBDD
BBEE
我目前有一些看起来像这样的代码(在字符串循环内):
TreeNode pfxNode;
if (treeView1.Nodes[pfx]!=null) {
pfxNode = treeView1.Nodes[pfx];
}
else {
pfxNode = treeView1.Nodes.Add(pfx);
}
if (!pfxNode.Nodes.ContainsKey(string)) {
pfxNode.Nodes.Add(string, string + " some info");
}
由于某种原因,最终会在顶层有多个“AA”节点 我错过了什么?
请不要预先过滤字符串我希望能够根据其密钥检查特定的treenode是否存在。
感谢
答案 0 :(得分:2)
else {
pfxNode = treeView1.Nodes.Add(pfx);
}
你错了,你忘了设置树节点的密钥。所以下一个ContainsKey()将找不到它。修正:
pfxNode = treeView1.Nodes.Add(pfx, pfx);
答案 1 :(得分:0)
使用此:
var q = from s in arr
group s by s.Substring(0, 2) into g
select new
{
Parent = g.Key,
Children = g.Select (x => x).Distinct()
};
foreach (var item in q)
{
var p = new TreeNode(item.Parent);
TreeView1.Nodes.Add(p);
foreach (var item2 in item.Children)
p.Nodes.Add(new TreeNode(item2));
}