给树加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 == 一系列控件
哪位高手能帮我解开谜团
第一种 是单个单个的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 == 一系列控件
哪位高手能帮我解开谜团
CreateTable();
CreateTree();private DataTable dtTree = null;
private DataView dv = null;
private void CreateTable()
{
OracleConnection conn = new OracleConnection("Data Source=orcl;User ID=todai;Password=todai");
conn.Open();
string sss = "Select DEPTID,DEPTNAME,PARENT_DEPT_ID from HR_DEPARTMENT";
OracleDataAdapter kkk = new OracleDataAdapter(sss, conn);
DataSet ds = new DataSet();
kkk.Fill(ds);
dtTree = ds.Tables[0];
}
private void CreateTree()
{
dv = dtTree.DefaultView;
dv.Sort = "PARENT_DEPT_ID ASC";
//dv.Sort = "TypeParentID ASC";
DataRowView[] arrDRV = dv.FindRows(0);
if (arrDRV.Length == 0) return;
TreeNode tnNew = null;
foreach (DataRowView drv in arrDRV)
{
tnNew = treeComboBox1.Nodes.Add(drv.Row["DEPTNAME"].ToString());
tnNew.Tag = drv.Row["DEPTID"].ToString();
CreateTreeNode(tnNew);
}
}
private void CreateTreeNode(TreeNode tnParent)
{
DataRowView[] arrDRV = dv.FindRows(tnParent.Tag);
if (arrDRV.Length == 0) return;
TreeNode tnNew = null;
foreach (DataRowView drv in arrDRV)
{
tnNew = tnParent.Nodes.Add(drv.Row["DEPTNAME"].ToString());
tnNew.Tag = drv.Row["DEPTID"].ToString();
CreateTreeNode(tnNew);
}
}我貌似用的是递归。