gpt4 book ai didi

c# - 在树结构中通过 ID 属性定位实例

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:12 24 4
gpt4 key购买 nike

我有一个 C# 类,其中包含与其属性之一相同的类的列表:

class MyClass
{
string id;
List<MyClass> children;
//other properties

public MyClass(string Id, List<MyClass> Children)
{
id = Id;
children = Children;
}
}

在我的程序中,此类用于创建树结构(因此,某些项目不会有子项目)。有没有办法在结构中找到一个 ID,然后从那里向下递归树以获得父节点数组?

我知道这类似于 TreeView.FindNode() 但我想尽可能避免使用派生类。

最佳答案

我会用递归来做:

List<MyClass> GetPathToId(string id2find)
{
if (Id == id2find) return new List<MyClass>(new[] { this });

if (Children == null) return null;

List<MyClass> result = Children.Select(e => e.GetPathToId(id2find)).FirstOrDefault(r => r != null);
if (result != null) result.Insert(0, this);

return result;
}

更新:正如医生正确指出的那样,由于我不知道你的类(class),Children 可能为空。我添加了空检查。

关于c# - 在树结构中通过 ID 属性定位实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34359747/

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