从Umbraco 7中的Descendants Where()子句中排除在多节点树选取器中拾取的一组节点

时间:2018-04-24 10:10:45

标签: c# umbraco umbraco7

我已经设置了一个多节点树选择器来选择一组我试图从一组后代节点中排除的节点。

我不确定要完成此操作的Where()语法:

var exclude_nodes = CurrentPage.pickedNodes;

var nodes = Model.Content.AncestorsOrSelf("homepage").First().Descendants("addonProduct").Where( filter out exclude_nodes here);

1 个答案:

答案 0 :(得分:1)

这对你有用吗?

new [] { 1, 2, 3 }.Where(x => x > 1) // { 2, 3 }
new [] { 1, 2, 3 }.Except(new [] { 2, 3 }) // { 1 }

即。在你的情况下

var nodes = ...Descendants("addonProduct").Except(exclude_nodes);
var nodes = ...Descendants("addonProduct").Where(d => !exclude_nodes.Contains(d));

请注意Except()行为:

new [] { 1, 1, 2, 3 }.Except(new [] { 2 }) // { 1, 3 }