gpt4 book ai didi

c# - 为 Treeview 和 TreeNode 传递通用参数

转载 作者:行者123 更新时间:2023-11-30 14:29:14 25 4
gpt4 key购买 nike

我有以下两种方法循环使用我想合并成一个方法的 TreeView 或 TreeNode。我可以传递一个对象并检查类型,而不是传递 TreeView/TreeNode,但想知道是否有更好的方法?

private TreeNode SearchNode(string nodetext, TreeNode node)
{
foreach (TreeNode nd in node.Nodes)
{
if (nd.Text == nodetext)
{
return nd;
}
}
return null;
}

private TreeNode SearchParentNode(string nodetext, TreeView trv)
{
foreach (TreeNode node in trv.Nodes)
{
if (node.Text == nodetext)
{
return node;
}
}
return null;
}

最佳答案

您需要一个可以在 NodesCollection 中搜索值的方法,因此只需将这两个方法的内容提取到一个接受 NodesCollection 的第三个方法中:

private TreeNode SearchNodes(string nodeText, TreeNodesCollection nodes)
{
foreach (TreeNode node in nodes)
{
if (node.Text == nodeText)
{
return node;
}
}
return null;
}

并将它传递给你想要搜索的任何集合:

return SearchNodes(nodetext, node.Nodes);

return SearchNodes(nodetext, trv.Nodes);

此外,您可以使用 LINQ 将 SearchNodes 方法缩减为一行:

private TreeNode SearchNodes(string nodeText, TreeNodesCollection nodes)
{
return nodes.Cast<TreeNode>().FirstOrDefault(n => n.Text == nodeText);
}

关于c# - 为 Treeview 和 TreeNode 传递通用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com