Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用循环和“在多个级别添加多个子级”;“干净”;代码_C#_Loops_Children - Fatal编程技术网

C# 使用循环和“在多个级别添加多个子级”;“干净”;代码

C# 使用循环和“在多个级别添加多个子级”;“干净”;代码,c#,loops,children,C#,Loops,Children,我有一个C#类,可以包含多个级别的多个子级 手动添加子项将如下所示: CustomClass MyClass = new CustomClass(“something”, new List<CustomClass>()); //Level 1 MyClass.Children.Add(“something”, new List<CustomClass>()); //Level 2 MyClass.Children[0].Children.Add(“something”,

我有一个C#类,可以包含多个级别的多个子级

手动添加子项将如下所示:

CustomClass MyClass = new CustomClass(“something”, new List<CustomClass>());
//Level 1
MyClass.Children.Add(“something”, new List<CustomClass>());
//Level 2
MyClass.Children[0].Children.Add(“something”, new List<CustomClass>());
//Level 3
MyClass.Children[0].Children[0].Children.Add(“something”, new List<CustomClass>());
CustomClass MyClass=newcustomclass(“某物”,newlist());
//一级
MyClass.Children.Add(“某物”,newlist());
//二级
MyClass.Children[0].Children.Add(“某物”,新列表());
//三级
MyClass.Children[0]。Children[0]。Children.Add(“某物”,新列表());
我应该如何用一个干净的循环来代替呢?这样做,感觉不“对”:

for (var i = 0; i < 50; i++) {
   //Level 1
   if (i == 0)
        MyClass.Children.Add(“something”, new List<CustomClass>());
   //Level 2
   if (i == 1)
        MyClass.Children[0].Children.Add(“something”, new List<CustomClass>());
   //Level 3
   if (i == 2)
        MyClass.Children[0].Children[0].Children.Add(“something”, new List<CustomClass>());

    // and so on up to 50 levels in this case ...
}
for(变量i=0;i<50;i++){
//一级
如果(i==0)
MyClass.Children.Add(“某物”,newlist());
//二级
如果(i==1)
MyClass.Children[0].Children.Add(“某物”,新列表());
//三级
如果(i==2)
MyClass.Children[0]。Children[0]。Children.Add(“某物”,新列表());
//以此类推,在这种情况下,高达50个级别。。。
}
重要更新:在每个级别,我都需要检查该值是否已经存在,如果不存在,我会添加它。

谢谢你的收听


我是初学者,所以请温柔点。

你可以反复做:

void FillChildren(CustomClass lastChild, int levels)
{
    if(levels > 0)
    {
        CustomClass child = new CustomClass(“something”, new List<CustomClass>());
        FillChildren(child, levels-1);
        lastChild.Children.Add(“something”, child);
    }
}
void FillChildren(自定义类lastChild,int级别)
{
如果(级别>0)
{
CustomClass子类=新CustomClass(“某物”,新列表());
儿童(儿童,1级);
lastChild.Children.Add(“某物”,child);
}
}
你会这样称呼它:

CustomClass MyClass = new CustomClass(“something”, new List<CustomClass>());

FillChildren(MyClass, 50);
CustomClass MyClass=newcustomclass(“某物”,newlist());
儿童(我的班级,50岁);

谢谢你的回答,我真的不知道这是否能帮到我。更新了一点问题,遗漏了一个重要部分,对此表示抱歉!:(我会发布一个更具体的问题,然后我会在这里发布url。这个问题从一开始就应该更详细,sry再次!这里是更详细的问题:ty!我不确定你所说的“值”是什么意思)。你能举例说明你需要在每个级别上进行的比较吗?你需要检查该值是否存在于任何地方,还是在当前级别上?@Matt Eilen的回答仍然适用于任何一种情况,如果检查结果为真,你只需在进行添加和返回之前添加一个检查。