基本上我在渲染参数中使用多列表进行类别选择。所以我得到了所选项目的管道分离GUID&需要获取一组项目,是否有Sitecore api支持的方法而不是循环迭代。与任何内置的Sitecore方法相比,这在效率方面可能很昂贵。
答案 0 :(得分:7)
Sitecore.Data.Fields中有一个MultilistField类,使用如下
var mlf = new MultilistField(item.Fields["field name"]).
mlf.GetItems();
我认为它不比你现在做的更有效率。事实上,它内部可能也是如此。
答案 1 :(得分:5)
另一种方法是,避免潜在的ArgumentNullException(在item.Fields["field name"]
为空的情况下)是将Sitecore.Data.ID.ParseArray
与linq语句结合使用以获取项目列表,如下所示:
var items = ID.ParseArray(item["field name"])
.Select(id => item.Database.GetItem(id)).ToList();