c# – Winform Treeview按标签查找节点
发布时间:2020-12-15 06:34:51 所属栏目:百科 来源:网络整理
导读:我有一个树视图,显示成员可能有重复,标签不会.例: TreeNode node = new TreeNode(itemName);node.Tag = itemID; //unique ID for the itemtreeView1.Nodes.Add(node); 所以,当搜索时,我知道我可以通过使用itemName来搜索 treeView1.Nodes.Find(itemName,tru
我有一个树视图,显示成员可能有重复,标签不会.例:
TreeNode node = new TreeNode(itemName); node.Tag = itemID; //unique ID for the item treeView1.Nodes.Add(node); 所以,当搜索时,我知道我可以通过使用itemName来搜索 treeView1.Nodes.Find(itemName,true); 但是我怎么可以通过标签搜索?没有关于treeView1.Nodes.Where的定义,所以没有linq给我:( 关于如何通过标签搜索的任何建议? :) 谢谢! 解决方法
尝试这个:
var result = treeView1.Nodes.OfType<TreeNode>() .FirstOrDefault(node=>node.Tag.Equals(itemID)); 注意:因为你说你的itemID是唯一的,所以你可以使用FirstOrDefault来搜索唯一的项目.如果没有找到结果将为null. UPDATE 要搜索所有级别的所有节点,您可以尝试使用一些递归方法,如下所示: public TreeNode FromID(string itemId,TreeNode rootNode){ foreach(TreeNode node in rootNode.Nodes){ if(node.Tag.Equals(itemId)) return node; TreeNode next = FromID(itemId,node); if(next != null) return next; } return null; } //Usage TreeNode itemNode = null; foreach(TreeNode node in treeView1.Nodes){ itemNode = FromID(itemId,node); if(itemNode != null) break; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |