You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CurrentPage.Children循环中排除ID为1234的单个节点

解决方法:调整过滤与截取的顺序

嘿,这个需求很好实现,不过要注意过滤和截取的顺序,不然可能达不到你想要的效果哦~

推荐的正确写法

你应该先排除ID为1234的节点,再从中取前6个,这样能保证最多显示6个符合要求的子节点(不会因为先取6个再过滤导致数量不足)。修改后的代码如下:

@{ 
    foreach( var child in CurrentPage.Children.Where(x => x.Id != 1234).Take(6) ){
        Html.Partial("Archive/Post", new ViewDataDictionary {{ "item", (object)child }} )
    } 
}

为什么要调整顺序?

如果像你最初想的那样先Take(6)再Where,会出现这种情况:假设前6个子节点里刚好包含ID为1234的节点,过滤后你只能显示5个内容,这大概率不是你想要的结果。

如果你确实需要先取前6个再过滤(场景较少)

要是你的业务逻辑就是要先取前6个,再排除其中ID为1234的节点,那代码可以这么写,但要接受最终显示数量可能少于6个:

@{ 
    foreach( var child in CurrentPage.Children.Take(6).Where(x => x.Id != 1234) ){
        Html.Partial("Archive/Post", new ViewDataDictionary {{ "item", (object)child }} )
    } 
}

内容的提问来源于stack exchange,提问作者sjodough

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:40:50