Home > Net >  More tree if not recursive stack traversal
More tree if not recursive stack traversal

Time:10-07

 private void DevexpreeCreateSubMenuItem (BarSubItem menu, string fatherid, DataTable dt) 

{
DRS DataRow []=dt. Select (" frm_father_id='" + fatherid + "' ");
Foreach (DataRow item in DRS)
{
//recursive judgment finally level 1
If (item) [r]. "frm_cname" ToString ()=="switch account" | | item [r]. "frm_ename" ToString ()!="")

{
String text=item [r]. "frm_cname" ToString ();
BarButtonItem mitem=new BarButtonItem (barManager1, text);
Mitem. Tag=item;
Menu. ItemLinks. Add (mitem);
Mitem. ItemClick +=new ItemClickEventHandler (DevExpressBindClickToInstinse);

}
The else
{

String text=item [r]. "frm_cname" ToString ();
BarSubItem mitem=new BarSubItem (barManager1, text);
Mitem. Tag=item;
DevexpreeCreateSubMenuItem (mitem, item [r]. "frm_id" ToString (), dt);
Menu. ItemLinks. Add (mitem);

}
}
}


Simple menu with recursive performance also is not a problem, if tens of thousands of article data tree, the recursive must overflow, use the stack is not so good.
There are other ways to non-recursive, the stack to achieve

CodePudding user response:

The.net framework technology called "iterator" mode,
  •  Tags:  
  • C#
  • Related