C#のツリービューで空のノードを素早く削除する方法は何ですか?

C#のTreeViewコントロールでは、再帰的な方法を使用して空のノードを高速に削除することができます。以下はサンプルコードです:

private void RemoveEmptyNodes(TreeNodeCollection nodes)
{
    // 从后向前遍历节点集合,以便在移除空节点后索引不会变化
    for (int i = nodes.Count - 1; i >= 0; i--)
    {
        TreeNode node = nodes[i];
        
        // 递归删除子节点的空节点
        RemoveEmptyNodes(node.Nodes);
        
        // 如果当前节点是空节点,则移除
        if (node.Nodes.Count == 0)
        {
            nodes.Remove(node);
        }
    }
}

使い方:

// 调用方法开始删除空节点
RemoveEmptyNodes(myTreeView.Nodes);

上記のコードでは、RemoveEmptyNodesメソッドがTreeNodeCollectionパラメータを受け取り、空のノードを削除するノードのコレクションを表しています。メソッド内部では、まず再帰的な方法で子ノードの空ノードを削除し、その後現在のノードが空ノードかどうかを判断し、空であればノードコレクションから削除します。

bannerAds