按值查找TreeView节点

时间:2011-09-15 11:07:55

标签: asp.net vb.net performance treeview

我的所有TreeView节点都有一个唯一的节点深度ID。

我想在TreeView节点上设置匹配特定值的Checked=True

目前我正在做以下事情:

Dim value As Integer = 57

For Each n As TreeNode In tvForces.Nodes
   If n.Value = value Then n.Checked = True
Next

有没有更好的方法来查找我想要设置为Checked=True的节点而不是循环遍历每个节点?

我正在寻找类似的东西:

Dim value As Integer = 57

n.FindNodesByValue(value)(0).Checked = True

我可以使用这样的东西吗?

3 个答案:

答案 0 :(得分:5)

伪代码(c#)使用LINQ Where() + List.ForEach():来展示一个想法

nodes.Where(node => node.Value == "5")
     .ToList()
     .ForEach((node => node.Checked = true));

请参阅上面的链接MSDN,了解这两种方法的VB.NET语法。

答案 1 :(得分:0)

                foreach (TreeNode node in TreeView1.Nodes)
                {
                    if (node.Value == "8")
                    {
                        node.Checked = true;
                    }
                    foreach (TreeNode item1 in node.ChildNodes)
                    {
                        if (item1.Value == "8")
                        {
                            item1.Checked = true;
                        }
                    }
                }               

答案 2 :(得分:-1)

for (int j = 0; j < TreeView1.CheckedNodes.Count; j++)
    {    
        Response.Write(TreeView1.CheckedNodes[j].Value));
    }