gpt4 book ai didi

c# - 使用循环和 "clean"代码在多个级别添加多个子项

转载 作者:太空狗 更新时间:2023-10-30 00:27:13 26 4
gpt4 key购买 nike

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

手动添加 child 看起来像这样:

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>());

我如何使用干净的循环来做到这一点?这样做,感觉不“对”:

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 ...
}

重要更新:在每个级别我都需要检查该值是否已存在,如果不存在,我将添加它。

感谢您的收听!

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

最佳答案

你可以递归地做:

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);
}
}

你会这样调用它:

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

FillChildren(MyClass, 50);

关于c# - 使用循环和 "clean"代码在多个级别添加多个子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com