以下代码应返回列表中的所有子项和子项,但它不保持父子关系的顺序。它首先返回所有父项,然后返回所有子项。
是否有可能以某种方式保持项目的顺序,并按照与Sitecore相同的顺序将它们放入列表中?
MainItem
包含父子关系中的项目:
Item mainItem= Sitecore.Context.Database.GetItem(Settings.GetSetting("MainItem"));
mainItem.Axes.GetDescendants().ToList();
答案 0 :(得分:6)
您可以递归地向列表添加项目:
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);