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

C#搜索问题:无法按标题关键词随机顺序筛选帖子

问题分析与修复方案

你的标题筛选逻辑失效,核心问题出在关键词拆分后的空字符串处理上:

问题根源

当输入的搜索短语包含多个空格,或是纯空格/空字符串时,filtro.Titolo.Split(" ").ToList()会生成带空字符串的列表。而string.Contains("")永远返回true,导致titoloDiviso.All(...)变成永真条件,直接跳过标题筛选,返回所有符合其他条件的帖子。

修复代码

修改标题拆分逻辑,过滤掉空字符串和纯空白元素:

List<string> titoloDiviso = filtro.Titolo != null 
    ? filtro.Titolo.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries).ToList() 
    : new List<string>();

同时,补充处理用户输入全空格的场景,确保筛选逻辑严谨:

&& (filtro.Titolo == null || string.IsNullOrWhiteSpace(filtro.Titolo) || titoloDiviso.All(t => p.Titolo!.ToLower().Contains(t.ToLower())))

额外优化

可以提前统一转小写,避免重复执行字符串转换:

List<string> titoloDiviso = filtro.Titolo != null 
    ? filtro.Titolo.ToLower().Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries).ToList() 
    : new List<string>();

筛选时简化为:

titoloDiviso.All(t => p.Titolo!.ToLower().Contains(t))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:59:51