C# 如何编写递归函数(MVC.net中父子组合上的动态foreach循环)

C# 如何编写递归函数(MVC.net中父子组合上的动态foreach循环),c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有一个父id和子id。这个子id也是某个子的父id。即。父级有多个子级..而这些多个子级有某个子级的父级。。 示例:假设A是B、C、D和E的父项…如果B有一些子项名称G、H、I和G有一些子项名称J、K…现在在这种情况下如何使用foreach循环??? 现在如何使用foreach循环??? 下面是代码,但它仅适用于单亲-子关系(假设A有B、C、D子关系): @model Abacus\u CMS.Models.AbacusModel @{ 布局=空; //为父母 var ParentCata

我有一个父id和子id。这个子id也是某个子的父id。即。父级有多个子级..而这些多个子级有某个子级的父级。。 示例:假设A是B、C、D和E的父项…如果B有一些子项名称G、H、I和G有一些子项名称J、K…现在在这种情况下如何使用foreach循环??? 现在如何使用foreach循环??? 下面是代码,但它仅适用于单亲-子关系(假设A有B、C、D子关系):

@model Abacus\u CMS.Models.AbacusModel
@{  
布局=空;
//为父母
var ParentCatagoryList=Model.AbacusMenuList.Where(x=>x.ParentCatagoryId==0.ToList();
//为亲子
var ParentChildMenuList=Model.AbacusChildMenuList.Where(x=>x.ChildParentId!=0.ToList();
}  
@*//添加侧栏父项及其子项名称*@
@如果(ParentCatagoryList.Count>0)
{  
  • @foreach(ParentCatagoryList中的变量项) {
    • @foreach(ParentChildMenuList中的var childitem) { if(item.Id==childitem.ChildParentId) {
    • } }
  • }
}
这里一个循环我得到父循环,另一个循环我得到子循环。。。 对于多重组合,我应该怎么做??
如何编写递归函数(MVC.net中父子组合上的dynamic foreach循环)?

您需要使用递归-这样您就可以重复调用该函数来生成相同的模式。在第一次传递时,输入顶级父级,然后再次为其每个子级调用相同的函数,并将子级作为输入传递。然后,它会依次给每个孩子打电话,以此类推,直到它到达树的底部。你如何描述我???你能给出一个答案吗?我可以,但也许你应该先尝试一下,因为我已经给了你这个概念,如果你仍然陷入困境,那么就编辑你的问题。如果您需要进一步了解递归,在线上有很多文章更详细地解释递归。这是一个非常有用的学习概念,最好的学习方法是做:-)。如果您稍后尝试并遇到特定问题,我将很乐意为您提供帮助。好的,先生………您需要使用递归-因此您可以重复调用该函数以生成相同的模式。在第一次传递时,输入顶级父级,然后再次为其每个子级调用相同的函数,并将子级作为输入传递。然后,它会依次给每个孩子打电话,以此类推,直到它到达树的底部。你如何描述我???你能给出一个答案吗?我可以,但也许你应该先尝试一下,因为我已经给了你这个概念,如果你仍然陷入困境,那么就编辑你的问题。如果您需要进一步了解递归,在线上有很多文章更详细地解释递归。这是一个非常有用的学习概念,最好的学习方法是做:-)。如果您稍后尝试并遇到特定问题,我将很乐意帮助您。好的,先生。。。。。。。。。