如何从具有n个子/子子的CustomObject获取所有子对象,依此类推

LMW*_*-HH 4 .net c# children list

我有一个带有n个孩子的CustomObject.这些子项是CustomObjects列表.像这样的东西:

public class CustomObject
{
    public List<CustomObject> Children = new List<CustomObject>();
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是从单个CustomObject实例中获得所有n个孩子及其子女和子女等的最高效的方法.有没有比循环遍历所有veigns更好的方法,直到我到达结尾(null)?

(C#,.NET 3.5)

为了更清楚,我将做一个示例结构:

//root object
CustomObject.Children ->
    CustomObject.Children ->
         CustomObject
         CustomObject
    CustomObject.Children ->
         CustomObject.Children ->
             CustomObject
         CustomObject
    CustomObject
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我需要在根对象下面获取所有自定义对象.

Guf*_*ffa 7

不,你只需循环一切.您可以使用递归方法:

public void GetItems(List<CustomObject> list) {
  list.Add(this);
  foreach (CustomObject child in Childs) {
    child.GetItems(list);
  }
}
Run Code Online (Sandbox Code Playgroud)

用法:

List<CustomObject> items = new List<CustomObject>();
someCustomObject.GetItems(items);
Run Code Online (Sandbox Code Playgroud)

注意:复数形式的孩子孩子.