首页 新闻 会员 周边 捐助

TreeView添加节点应该使用Node.Add() 还是 Node.AddRange()

0
悬赏园豆:20 [已解决问题] 解决于 2009-07-24 14:13

 给树加5000个节点,有两种方法,不知道那种性能更高。
  第一种 是单个单个的Add.
          TreeView treeView = new TreeView();

            for (int i = 0; i < 5000;i++ )
            {
                TreeNode node = new TreeNode(i.ToString());
                treeView.Nodes.Add(node);
            }

第二种 是 Add 一个节点集合
     
            TreeView treeView = new TreeView();

            TreeNode[] nodes = new TreeNode[5000];
             for (int i = 0; i < 5000;i++ )
            {
                TreeNode node = new TreeNode(i.ToString());
                nodes[i] =  node;
            }
            treeView .Nodes.AddRange(nodes);
            

少量数据的话就可以不考虑,但是如果数据超过万,那该如何取舍。。

类似的问题 也存在ListBox,ListView == 一系列控件
哪位高手能帮我解开谜团

陈陈#的主页 陈陈# | 初学一级 | 园豆:140
提问于:2009-07-23 20:30
< >
分享
最佳答案
0

ls都回答了, 异步加载可以参考我整理的一篇文章C# WinForm开发系列 - TreeView

TreeView

peterzb | 小虾三级 |园豆:861 | 2009-07-24 11:39
其他回答(3)
0

选择第二种,最起码不会像第一种要对UI上控件做5000次操作,第二种数据在内存里。

但建议你万条数据操作不要用TreeView 。即使加载数据很快也影响软件的易用性。

winzheng | 园豆:8797 (大侠五级) | 2009-07-23 20:52
0

第二种,如果是WINFORM程序,可以使用异步方法

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2009-07-24 11:13
0

上万条数据你还用treeview啊?,估计电脑都已经晕了。

天堂口 | 园豆:514 (小虾三级) | 2009-07-24 11:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册