C# 如何通过文本在TreeView中查找TreeNode?
我在一个循环中构建一个树视图。在每次迭代中,我都有:C# 如何通过文本在TreeView中查找TreeNode?,c#,.net,linq,treeview,C#,.net,Linq,Treeview,我在一个循环中构建一个树视图。在每次迭代中,我都有: 根节点 上一个节点名 如果我只能访问根节点,如何找到具有指定文本的TreeNode 在创建异常(“序列不包含元素”)的步骤中,树如下所示: Root Folder1 Folder1.1 Folder2 Folder3 我想将File1.1.1作为子文件添加到Folder1.1 我抛出异常的代码 rootNode.Nodes .Cast<TreeNode>() .Whe
- 根节点
- 上一个节点名
TreeNode
在创建异常(“序列不包含元素”)的步骤中,树如下所示:
Root
Folder1
Folder1.1
Folder2
Folder3
我想将File1.1.1
作为子文件添加到Folder1.1
我抛出异常的代码
rootNode.Nodes
.Cast<TreeNode>()
.Where(x => x.Text == "Folder1.1")
.Last()
.Nodes
.Add("File1.1.1");
rootNode.Nodes
.Cast()
。其中(x=>x.Text==“Folder1.1”)
.Last()
.节点
.添加(“文件1.1.1”);
rootNode。节点
将只包含文件夹1~3
Folder1.1
列在Folder1
的节点下。所以为了找到它,你需要遍历整个树
rooteNode.Flatten()
.Last(x => x.Text == "Folder1.1")
.Nodes.Add("File1.1.1");
公共静态类TreeNodeHelper
{
公共静态IEnumerable展平(此树节点根)
{
产量回归根;
foreach(root.Nodes中的TreeNode节点)
foreach(展平(节点)中的var项)
收益回报项目;
}
}
你救了我一个晚上:)谢谢!
public static class TreeNodeHelper
{
public static IEnumerable<TreeNode> Flatten(this TreeNode root)
{
yield return root;
foreach(TreeNode node in root.Nodes)
foreach(var item in Flatten(node))
yield return item;
}
}