C#Treeview-使用节点计数生成无重复项的树

C#Treeview-使用节点计数生成无重复项的树,c#,treeview,duplicates,nodes,C#,Treeview,Duplicates,Nodes,已经有一些代码,几乎在那里,需要一些最后的调整 以下是我的预期输出: ParentNode1 |----ChildNode1 (3) |----ChildNode2 (2) |----ChildNode3 ParentNode2 |----ChildNode4 (2) |----ChildNode5 子节点节点3和5只有一个从中提取数据的“条目”(数据行) dr[“Contact”]=drows_cont[0]。ItemArray[2]。ToString(); 树节点温度=新树节点(); te

已经有一些代码,几乎在那里,需要一些最后的调整

以下是我的预期输出:

ParentNode1
|----ChildNode1 (3)
|----ChildNode2 (2)
|----ChildNode3
ParentNode2
|----ChildNode4 (2)
|----ChildNode5
子节点节点3和5只有一个从中提取数据的“条目”(数据行)

dr[“Contact”]=drows_cont[0]。ItemArray[2]。ToString();
树节点温度=新树节点();
temp.Text=(dr[“Contact”].ToString());
临时名称=临时文本;
如果(contactNode1.Nodes.Count==0)/*节点没有子节点或为空*/
{
contactNode1.Nodes.Add(临时);
}
其他的
{
int指数=1;
foreach(contactNode1.Nodes中的TreeNode loopNode)
{                                                                   
指数=1;
对于(int i=0;i如果(索引我建议您将代码替换为:

index = contactNode1.GetNodeCount(false);

如果这不能回答您的问题,请您发布您的实际结果,以便我们了解问题所在

//Add parent
treeView.Nodes.Add(parentNode);
//Loop through every child
foreach(TreeNode childNode in parentNode.Nodes)
{
    int index = 0;
    //Calculate childNode's children
    foreach (TreeNode node in loopNode.Nodes)
    {
        index++;
    }
    string node;
    //If index is 0, dont change text.
    if (index != 0) node = childNode.Text + " (" + index + ")";
    else node = childNode.Text;
    parentNode.Nodes.Add(childNode);
}

根据需要进行修改。您可以将此作为一种方法,将父节点作为参数传入。

您遇到的问题还不完全清楚。您能否更具体地回答您需要回答的问题?我建议您说明代码有什么问题?从我发布的代码开始,我将始终得到:ChildNode3(0)我需要GetNodeCount来实际反映ChildNode3的数量,而不是实际显示所有的ChildNode3
index = contactNode1.Nodes.Count(); //start from 0
index = contactNode1.Nodes.Count() + 1; // start from 1
//Add parent
treeView.Nodes.Add(parentNode);
//Loop through every child
foreach(TreeNode childNode in parentNode.Nodes)
{
    int index = 0;
    //Calculate childNode's children
    foreach (TreeNode node in loopNode.Nodes)
    {
        index++;
    }
    string node;
    //If index is 0, dont change text.
    if (index != 0) node = childNode.Text + " (" + index + ")";
    else node = childNode.Text;
    parentNode.Nodes.Add(childNode);
}