В основном я использовал мультисписок в параметре рендеринга для выбора категории. поэтому я получил GUID выбранного элемента, разделенные конвейером, и мне нужно получить коллекцию элементов, есть ли какой-либо метод, поддерживаемый API Sitecore, вместо повторения в цикле. это может быть дорого с точки зрения эффективности по сравнению с любым встроенным методом Sitecore.
Получить коллекцию элементов по идентификаторам GUID, разделенным конвейером, в sitecore
Ответы (2)
В Sitecore.Data.Fields есть класс MultilistField, который используется следующим образом.
var mlf = new MultilistField(item.Fields["field name"]).
mlf.GetItems();
Я не думаю, что это более эффективно, чем то, что вы уже делаете. На самом деле, он, вероятно, делает то же самое внутри.
person
Martin Davies
schedule
18.02.2015
Другой способ избежать потенциального 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();
person
Matthew Dresser
schedule
18.02.2015
Хорошая точка зрения. На самом деле я предпочитаю делать это именно так и редко использую
MultilistField
. Я просто дал официальный ответ :)
- person Martin Davies; 18.02.2015