C# 使用循环和“在多个级别添加多个子级”;“干净”;代码
我有一个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”,
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的回答仍然适用于任何一种情况,如果检查结果为真,你只需在进行添加和返回之前添加一个检查。