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

sye*_*fri 2 c# sitecore sitecore7.2

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

Mar*_*ies 7

Sitecore.Data.Fields中有一个MultilistField类,用法如下

var mlf = new MultilistField(item.Fields["field name"]).
mlf.GetItems();
Run Code Online (Sandbox Code Playgroud)

我认为它不比你现在做的更有效率.事实上,它内部可能也是如此.


Mat*_*ser 5

另一种方法是,避免潜在的ArgumentNullException(在item.Fields["field name"]为null 的情况下)Sitecore.Data.ID.ParseArray与linq语句结合使用以获取项目列表,如下所示:

var items = ID.ParseArray(item["field name"])
               .Select(id => item.Database.GetItem(id)).ToList();
Run Code Online (Sandbox Code Playgroud)