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

C# Linq替换逻辑在Jquery Datatable中筛选失效问题

问题分析与修复方案

问题根源

  1. 字符串替换未生效:C# 中的 string 是不可变类型,Replace 方法不会修改原变量,而是返回一个新的字符串。你之前的代码仅调用了 Replace 但未将结果赋值回 apartment,导致输入的「Apartment 101」根本没被修改,最终还是用完整的原字符串去匹配,自然只能找到完全包含它的记录。
  2. 残留空格干扰匹配:就算替换成功,「Apartment 101」去掉「Apartment」后会变成「 101」(带前导空格),用这个值搜索的话,「Space 101」这类无前置空格的记录会被漏掉。

修复后的代码

var apartment = Request.Form.GetValues("columns[1][search][value]")[0];

if (!string.IsNullOrWhiteSpace(apartment))
{
    // 直接替换目标关键词,无需提前判断是否包含
    apartment = apartment.Replace("Num", "")
                        .Replace("Apartment", "")
                        .Replace("Space", "")
                        .Trim(); // 清除前后多余空格

    data = data.Where(gsn => gsn.Apartment.Contains(apartment));
}

关键修改说明

  • 赋值替换结果:每次调用 Replace 后将新字符串赋值回 apartment,确保替换操作真正生效。
  • 简化判断逻辑:无需提前用 Contains 检查,Replace 遇到不存在的关键词时会直接返回原字符串,不影响结果,代码更简洁。
  • 去除多余空格:用 Trim() 清除替换后可能残留的前后空格,确保最终匹配的是纯数字部分(比如「101」),这样就能命中所有包含该数字的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:25:21