作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这种情况:
具有“Children”属性的对象,它是一个相同类型的列表。结构的深度未知。这是对象的样子:
public class CustomType
{
public Guid ID { get; set; }
public string Name { get; set; }
public List<CustomType> Children { get; set; }
}
现在我想搜索一个特定的名称,如果我找到了一个匹配这个名称的元素,我想知道它是根元素。例如:
我已经有了 FoundElement,但我想知道它是顶级父元素。我希望我的问题是可以理解的。主要问题是对象中不存在父链接...
这么久克里斯
最佳答案
正如您所说,理想的情况是在类上有一个 Parent
属性。但是,如果不需要它,您的方法应该是检查所有候选根节点的所有后代。这可以像这样递归地完成:
private bool HasDescendent(CustomType parent, CustomType descendent)
{
if(parent.Children.Contains(descendent))
return true;
return parent.Children.Any(child => HasDescendent(child, descendent);
}
private CustomType FindRoot(IEnumerable<CustomType> candidateRoots, CustomType node)
{
return candidateRoots.First(root => HasDescendent(root, node));
}
关于c# - 如何在层次结构中查找根元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23368134/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!