C# 在sitecore中通过管道分隔的GUID获取项集合

C# 在sitecore中通过管道分隔的GUID获取项集合,c#,sitecore,sitecore7.2,C#,Sitecore,Sitecore7.2,基本上,我在类别选择的渲染参数中使用了multi-list。所以我得到了所选项目的管道分离guid&需要获得一个项目集合,SiteCoreAPI是否支持任何方法而不是在循环中迭代。与任何内置Sitecore方法相比,这种方法的效率可能会很高。Sitecore.Data.Fields中有一个MultilistField类,使用如下 var mlf = new MultilistField(item.Fields["field name"]). mlf.GetItems(); 我不认为这比你已经在

基本上,我在类别选择的渲染参数中使用了multi-list。所以我得到了所选项目的管道分离guid&需要获得一个项目集合,SiteCoreAPI是否支持任何方法而不是在循环中迭代。与任何内置Sitecore方法相比,这种方法的效率可能会很高。

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

var mlf = new MultilistField(item.Fields["field name"]).
mlf.GetItems();

我不认为这比你已经在做的更有效率。实际上,它的内部功能可能与此相同。

另一种避免潜在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();

说得好。事实上,我更喜欢这样做,而且很少使用
MultilistField
。我只是给出了正式的回答:)