C# 在数据绑定之前筛选出Sitecore项目
我想从Sitecore.Data.items类型的列表中筛选/删除项目。 这就是我填写清单的方式C# 在数据绑定之前筛选出Sitecore项目,c#,.net,sitecore,C#,.net,Sitecore,我想从Sitecore.Data.items类型的列表中筛选/删除项目。 这就是我填写清单的方式 List<Item> actueelItems = Sitecore.Context.Database.SelectItems("/sitecore/content/destil_nl/Home/").ToList(); List actueletems=Sitecore.Context.Database.SelectItems(“/Sitecore/content/destl_nl/
List<Item> actueelItems = Sitecore.Context.Database.SelectItems("/sitecore/content/destil_nl/Home/").ToList();
List actueletems=Sitecore.Context.Database.SelectItems(“/Sitecore/content/destl_nl/Home/”).ToList();
我有一个方法可以检查项目是否有效。这将返回true或false。
我想建立一个新的列表,我将调用filteredList,其中只包含有效的项目
实现这一目标的最佳方式是什么
顺便说一下,这是我的验证方法:
public static bool ValidateItem(Item item)
{
return ValidateItem(item, true);
}
public static bool ValidateItem(Item item, bool checkVisualization)
{
bool result = true;
if (item.Versions.Count <= 0 ||
!item.Publishing.IsValid(DateTime.Today, false) ||
(checkVisualization && item.Visualization.GetLayout(Sitecore.Context.Device) == null))
{
result = false;
}
return result;
}
公共静态bool ValidateItem(项)
{
返回ValidateItem(项,true);
}
公共静态bool ValidateItem(项项项、bool检查可视化)
{
布尔结果=真;
如果(item.Versions.Count我已经解决了我自己的难题。
在我有列表的地方,我将只运行linq。在哪里验证我的项目:
actueelItems = actueelItems.Where(c => MenuItemHelper.ValidateItem(c, false)).ToList<Item>();
actueletems=actueletems.Where(c=>MenuItemHelper.ValidateItem(c,false)).ToList();
将来可能对其他人很方便!LINQ plus扩展方法或包装类为查询和筛选sitecore项目提供了很多可能性