递归遍历问题

crmserver 2020-08-03 03:34:18


protected void Page_Load(object sender, EventArgs e)
{
System.Data.DataTable dt1 = new System.Data.DataTable();
dt1.Columns.Add("column1");
dt1.Columns.Add("column2");
dt1.Rows.Add("3", "8");
dt1.Rows.Add("8", "9");
dt1.Rows.Add("9", "11");
dt1.Rows.Add("9", "13");
dt1.Rows.Add("13", "16");
dt1.Rows.Add("13", "18");
dt1.Rows.Add("18", "20");
dt1.Rows.Add("18", "25");
dt1.Rows.Add("25", "32");
dt1.Rows.Add("32", "36");
dt1.Rows.Add("32", "45");
dt1.Rows.Add("25", "47");
dt1.Rows.Add("47", "49");
dt1.Rows.Add("47", "50");

System.Data.DataTable dtClone = dt1.Copy();
for (int i = 0; i < dt1.Rows.Count; i++)
{
for (int k = 1; k < dtClone.Rows.Count; k++)
{
if (dt1.Rows[i]["column2"].ToString() == dtClone.Rows[k]["column1"].ToString())
{
Response.Write("<br>" + dtClone.Rows[k]["column1"].ToString() + dtClone.Rows[k]["column2"].ToString() + "<br>");
}
}
}
}




希望得到的结果:


column1 column2
3 8
8 50
9 11
13 16
18 20
25 36
32 45
47 49
...全文
2377 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2020-08-04
  • 打赏
  • 举报
回复
引用 3 楼 crmserver 的回复:
规律如下: 拿第二列的 8 去查找第一列等于8的值,由于在第一列中找到8的行,再拿第二列的9,再去查找第一列等于9的值,由于在第一列中找到9的行,再拿第二列的11去找,由于在第一列中没有找到11的行,就显示(9, 11),再拿第二列的13去找......以此类推 dt1.Rows.Add("3", "8"); dt1.Rows.Add("8", "9"); dt1.Rows.Add("9", "11"); dt1.Rows.Add("9", "13"); dt1.Rows.Add("13", "16"); dt1.Rows.Add("13", "18"); dt1.Rows.Add("18", "20"); dt1.Rows.Add("18", "25"); dt1.Rows.Add("25", "32"); dt1.Rows.Add("32", "36"); dt1.Rows.Add("32", "45"); dt1.Rows.Add("25", "47"); dt1.Rows.Add("47", "49"); dt1.Rows.Add("47", "50");
没有形容的这么麻烦, 其实就递归遍历所有节点。 这是编译书的例子,你照着改改https://blog.csdn.net/hanjun0612/article/details/50563136
crmserver 2020-08-04
  • 打赏
  • 举报
回复
@正怒月神,参考”Tree 菜单 递归“仍然达不到我想要的功能,请建议,谢谢!
ZiFeng1985 2020-08-04
  • 打赏
  • 举报
回复
使用DataTable时,那么可以先distinct字段column1值,然后遍历distinct结果,从DataTable中取得column1同值中column2值最小的
crmserver 2020-08-03
  • 打赏
  • 举报
回复
规律如下: 拿第二列的 8 去查找第一列等于8的值,由于在第一列中找到8的行,再拿第二列的9,再去查找第一列等于9的值,由于在第一列中找到9的行,再拿第二列的11去找,由于在第一列中没有找到11的行,就显示(9, 11),再拿第二列的13去找......以此类推 dt1.Rows.Add("3", "8"); dt1.Rows.Add("8", "9"); dt1.Rows.Add("9", "11"); dt1.Rows.Add("9", "13"); dt1.Rows.Add("13", "16"); dt1.Rows.Add("13", "18"); dt1.Rows.Add("18", "20"); dt1.Rows.Add("18", "25"); dt1.Rows.Add("25", "32"); dt1.Rows.Add("32", "36"); dt1.Rows.Add("32", "45"); dt1.Rows.Add("25", "47"); dt1.Rows.Add("47", "49"); dt1.Rows.Add("47", "50");
欧皇神降术 2020-08-03
  • 打赏
  • 举报
回复
你这哪里又递归?
耗子哭死猫 2020-08-03
  • 打赏
  • 举报
回复
根据什么规律了,第二组没看明白

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧