自从我不得不进行树遍历并想要一些输入以来已经有一段时间了。这是一个示例树:
树是我的 ASP.NET 页面。此页面由 2 个母版页和内容页组成。我想要做的是找到作为我的第二个母版页主要内容的控件,然后将所有控件放在一个平面数据结构中,例如列表。
因此,鉴于橙色节点是第二个母版页的主要 ContentPlaceHolder,我想将所有这些都存储在我的列表中的蓝色椭圆中。我已经创建了一些代码来返回集合中控件的所有子、孙等:
private IEnumerable<Control> GetChildControls(Control parentControl)
{
foreach (Control control in parentControl.Controls)
{
yield return control;
foreach(Control grandchild in GetChildControls(control))
{
yield return grandchild;
}
}
}
但我有点坚持如何将这棵树过滤到一个节点和它的孩子。如果有帮助,橙色节点应如下所示:
<asp:Content ID="SystemMasterMainContentPlaceHolder" runat="server" ContentPlaceHolderID="MainContentPlaceholder">