首页 > 解决方案 > 从搜索中删除一个字符并返回包含该字符的正确项目

问题描述

在搜索了一段时间并且空无一物之后,我决定发布希望有人可以帮助我走向正确的方向。

我试图找出一种方法来返回包含连字符的结果,同时将其从搜索查询中删除。某些项目可能会返回多个连字符

IE

搜索
020550407

将返回正确的项目
-02055-0407
-02055-0407-1

每个项目都有连字符的位置没有模式,所以我需要能够从搜索查询的任何地方删除它。

我尝试了几种不同的方法,但都没有运气。

例子:

results = (from x in results
           where x.item.Replace("-", "").Contains(NumberSearch)
           select x);

- -或者 - -

results = results.Where(x => SqlFunctions.PatIndex(NumberSearch, x.item)==1);

- -或者 - -

var result = (from x in results
              where SqlMethods.Like(x.item, NumberSearch)
              select x)

除其他事项外。

任何帮助将不胜感激。

标签: c#sqlentity-framework

解决方案


你很亲密。这应该有效:

results = results.Where(x => x.item.Replace("-", "").Contains(NumberSearch)).ToList();

推荐阅读