通过sitecore中的管道分隔GUID获取项目集合

时间:2015-02-18 06:35:16

标签: c# sitecore sitecore7.2

基本上我在渲染参数中使用多列表进行类别选择。所以我得到了所选项目的管道分离GUID&需要获取一组项目,是否有Sitecore api支持的方法而不是循环迭代。与任何内置的Sitecore方法相比,这在效率方面可能很昂贵。

2 个答案:

答案 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();