gpt4 book ai didi

c# - 查询嵌套递归对象的性能问题

转载 作者:行者123 更新时间:2023-11-30 17:06:46 27 4
gpt4 key购买 nike

我想知道从对象的嵌套层次结构中选择的最佳方法是什么?假设我们有一个 MyRecursiveObject 类,如下所示:

 public class MyRecursiveObject
{
public Int64 Id { get; set; }
public MyRecursiveObject Parent { get; set; }
}

如何在选择 MyRecursiveObject 实例的所有父 ID 时达到最佳性能?

非常感谢任何建议。

最佳答案

您可以使用简单的循环而不是递归:

public IEnumerable<long> GetAllParentIdsOf(MyRecursiveObject obj)
{
MyRecursiveObject child = obj;

while (child.Parent != null)
{
child = child.Parent;
yield return child.Id;
}
}

示例:

MyRecursiveObject obj = new MyRecursiveObject {    
Id = 1,
Parent = new MyRecursiveObject {
Id = 2,
Parent = new MyRecursiveObject { Id = 3 }
}
};

GetAllParentIdsOf(obj).ToList().ForEach(Console.WriteLine);

// 2
// 3

关于c# - 查询嵌套递归对象的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15205555/

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