首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有在TreeView.Nodes集合中搜索TreeNode.Text字段的方法?

有没有在TreeView.Nodes集合中搜索TreeNode.Text字段的方法?
EN

Stack Overflow用户
提问于 2012-09-12 20:32:36
回答 4查看 53K关注 0票数 26

如下所示:

代码语言:javascript
复制
TreeNode[] treeNodes = treeView.Nodes.Find(searchString, true);

但我希望它在text字段而不是name字段中进行搜索。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-12 20:34:56

我不知道有什么内置的方法,但你可以使用LINQ

代码语言:javascript
复制
TreeNode[] treeNodes = treeView.Nodes
                                    .Cast<TreeNode>()
                                    .Where(r => r.Text == "yourText")
                                    .ToArray();
票数 41
EN

Stack Overflow用户

发布于 2012-09-12 20:45:15

要搜索所有树节点(不仅仅是直接子节点),可以使用下面的扩展方法

代码语言:javascript
复制
var nodes = treeView1.FlattenTree()
                     .Where(n => n.Text == "sometext")
                     .ToList();

--

代码语言:javascript
复制
public static class SOExtension
{
    public static IEnumerable<TreeNode> FlattenTree(this TreeView tv)
    {
        return FlattenTree(tv.Nodes);
    }

    public static IEnumerable<TreeNode> FlattenTree(this TreeNodeCollection coll)
    {
        return coll.Cast<TreeNode>()
                    .Concat(coll.Cast<TreeNode>()
                                .SelectMany(x => FlattenTree(x.Nodes)));
    }
}
票数 28
EN

Stack Overflow用户

发布于 2012-09-12 20:42:12

如果我理解正确(您上一个问题非常令人困惑),您可以自己编写一个find方法,如下所示

代码语言:javascript
复制
public static TreeNode[] Find(this TreeNode motherNode, string findNodeText)
{
    List<TreeNode> nodeList = new List<TreeNode>();
    foreach (TreeNode childNode in motherNode.Nodes)
        if (childNode.Text.Equals(findNodeText, StringComparison.CurrentCulture))
            nodeList.Add(childNode);
    return nodeList.ToArray<TreeNode>();
}

这个方法可以像这样使用。

代码语言:javascript
复制
TreeView myTreeView = new TreeView();
foreach (TreeNode node in myTreeView.Nodes)
{
    TreeNode[] childNodes = node.Find("Text");
    // Do something...
}

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12388249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档