我有一个带有 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/