C# Linq Replace在Jquery数据表中不能正确过滤

zpqajqem  于 2023-01-06  发布在  C#
关注(0)|答案(1)|浏览(157)

下面的代码应该是这样工作的:
1.用户在“公寓/空间/其他”搜索字段中输入值“公寓101”。
1.值的“Apartment”部分将替换为空字符串(“”)。
1.值包含“101”的记录将显示在搜索结果中。这可以包括“空间101”、“编号101”、“公寓101”等。
目前,如果我输入“公寓101”,搜索结果只包括带有“公寓101”的记录。

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

    if (!string.IsNullOrWhiteSpace(apartment))
    {
        if (apartment.Contains("Num"))
            apartment.Replace("Num", "");
        if (apartment.Contains("Apartment"))
            apartment.Replace("Apartment", "");
        if (apartment.Contains("Space"))
            apartment.Replace("Space", "");

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

我尝试使用Contains函数查看输入的值中是否有某个字符串。如果有,我尝试使用Replace函数将该值替换为空字符串(“”)。
当我搜索某个值(如“空格301”)时,我希望在搜索结果中看到所有包含“301”的记录。

yhxst69z

yhxst69z1#

replace返回值,并且不改变主变量,因此将其更改为如下形式:

if (!string.IsNullOrWhiteSpace(apartment))
    {
        if (apartment.Contains("Num")){
            apartment = apartment.Replace("Num", "");
            data = data.Where(gsn => gsn.Num.Contains(apartment));
        }else
        if (apartment.Contains("Apartment")){
            apartment = apartment.Replace("Apartment", "");
            data = data.Where(gsn => gsn.Apartment.Contains(apartment));
         }else
        if (apartment.Contains("Space")){
            apartment = apartment.Replace("Space", "");
            data = data.Where(gsn => gsn.Space.Contains(apartment));
        }

        
    }

相关问题