我有一个带有 n 个 child 的 CustomObject。这些子对象是一个自定义对象列表。像这样的东西:

public class CustomObject
{
    public List<CustomObject> Children = new List<CustomObject>();
}

我正在寻找的是从 CustomObject 的单个实例中获取所有 n 个 child 及其 child 和子 child 等的最高效方法。有没有比遍历所有面纱直到结束(空)更好的方法?

(C#,.NET 3.5)

为了更清楚,我将制作一个示例结构:
//root object
CustomObject.Children ->
    CustomObject.Children ->
         CustomObject
         CustomObject
    CustomObject.Children ->
         CustomObject.Children ->
             CustomObject
         CustomObject
    CustomObject

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

最佳答案

不,你只需要遍历所有内容。您可以使用递归方法:

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

用法:
List<CustomObject> items = new List<CustomObject>();
someCustomObject.GetItems(items);

注意:child 的复数形式是children。

关于c# - 如何从具有 n 个子项/子子项等的 CustomObject 获取所有子对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8476019/

10-11 05:59