在做递归循环数据的时候遇到这么一个问题public void BuildTree(StringBuild sb,id)
{
logics.query[] querys = logics.query.loadAllFromDatabase("where parent="+id+"");
sb.append("<div>");
if(querys.length > 0)
{
foreach(logics.query querychild in querys)
{
sb.append(" <a>"+ querychild.id +"</a>");
//继续调用
BuildTree(sb,querychild.id);
}
}
sb.append("</div>");
}上面这个方法得到的数据结果将是<div>
<a>1</a>
<div>
<a>11</a>
<a>22></a>
</div>
</div>然而我想要的输出结果,父和子是同级的,如下:<div>
<a>1</a>
</div>
<div>
<a>11</a>
<a>22</a>
</div>
{
logics.query[] querys = logics.query.loadAllFromDatabase("where parent="+id+"");
sb.append("<div>");
if(querys.length > 0)
{
foreach(logics.query querychild in querys)
{
sb.append(" <a>"+ querychild.id +"</a>");
//继续调用
BuildTree(sb,querychild.id);
}
}
sb.append("</div>");
}上面这个方法得到的数据结果将是<div>
<a>1</a>
<div>
<a>11</a>
<a>22></a>
</div>
</div>然而我想要的输出结果,父和子是同级的,如下:<div>
<a>1</a>
</div>
<div>
<a>11</a>
<a>22</a>
</div>
{
logics.query[] querys = logics.query.loadAllFromDatabase("where parent="+id+"");
if (querys.length > 0)
{
foreach (logics.query querychild in querys)
{
list.Add(querychild.id);
BuildTree(list, querychild.id);
}
}
}调用
var list = new List<string>();
BuildTree(list, rootid);
foreach (var item in list)
{
sb.append("<div>");
sb.append("<a>"+ item +"</a>");
sb.append("</div>");
}
谢谢楼上的这个思想,这个方法是解决不了问题的, 我最终的目的是这样的规则
<div id="0">
<a>1</a>
</div>
<div id="1"> //这里的id=1,就是第一个a里面的1
<a>11</a>
<a>22</a>
</div>
<div id="11">//相应的这个11就是第二个div里第一个锚点里的11
<a>111</a>
</div>最终我是想实现成这样的。
{
logics.query[] querys = logics.query.loadAllFromDatabase("where parent="+id+"");
if (querys.length > 0)
{
foreach (logics.query querychild in querys)
{
list.Add(new Tuple<string, string>(id, querychild.id));
BuildTree(list, querychild.id);
}
}
}
调用
var list = new List<Tuple<string, string>>();
BuildTree(list, rootid);
foreach (var item in list)
{
sb.append("<div> id=" item.Item1+ );
sb.append("<a>"+ item.Item2 +"</a>");
sb.append("</div>");
}
{
logics.query[] querys = logics.query.loadAllFromDatabase("where parent="+id+"");
sb.append("<div>");
foreach(logics.query querychild in querys)
{
sb.append(" <a>"+ querychild.id +"</a>");
}
sb.append("</div>");
foreach(logics.query querychild in querys)
{
BuildTree(sb,querychild.id);
}
}
}
sb.append("<div>");
if(querys.length > 0)
{
foreach(logics.query querychild in querys)
{
sb.append(" <a>"+ querychild.id +"</a>");
BuildTree(sb,querychild.id);//可单步看值,第二次就<div> a 11
}
}
sb.append("</div>");
=>
logics.query[] querys = logics.query.loadAllFromDatabase("where parent="+id+"");
sb.append("<div>");
if(querys.length > 0)
{
foreach(logics.query querychild in querys)
{
sb.append(" <a>"+ querychild.id +"</a>");
} sb.append("</div>");
foreach(logics.query querychild in querys)
{
BuildTree(sb,querychild.id);//可单步看值,第二次就<div> a 11
} }
}