从父子关系中的 Sitecore 项目中获取所有子项

Get the all the children from a Sitecore item in a parent-child relation

下面的代码应该return 列表中的所有子项和子项,但它没有保持父子关系的顺序。它 return 首先是所有父项,然后是所有子项。

是否有可能以某种方式保持项目有序,并以与在 Sitecore 中相同的顺序将它们放入列表中?

MainItem包含父子关系中的项目:

Item mainItem= Sitecore.Context.Database.GetItem(Settings.GetSetting("MainItem"));
mainItem.Axes.GetDescendants().ToList();

您可以递归地将项目添加到列表中:

public void AppendItems(List<Item> itemList, Item item)
{
    foreach(Item childItem in item.Children)
    {
        itemList.Add(childItem);
        AppendItems(itemList, childItem);
    }
}

用法:

var list = new List<Item>();
list.Add(rootItem);
AppendItems(list, rootItem);