在Lambda中使用Like表达式

时间:2018-12-04 22:26:20

标签: c# lambda

我有一个Lambda表达式,可以在提交表单后搜索该列。 当我提交它时,它确实起作用,但是它不能以我想要的正确方式进行搜索。 我想使它像在类似SQL的语句中搜索一样工作。

select * FROM tableSearch where subject like '%f5%'

这样,即使'F'是大写字母,它仍然可以找到它。 使用Lambda表达式可以做到这一点。 使用以下代码,除非我在主题中输入“ F5”,否则它仅在“ F”不是大写字母时才会找到它。

if (!string.IsNullOrEmpty(searchControl.subject))
     {
        searchList = searchList.Where(x => x.subject.Contains(searchControl.subject)).ToList();
     }

2 个答案:

答案 0 :(得分:1)

为什么不让他们两个都ToLower

searchList.Where(x => x.subject.ToLower().Contains(searchControl.subject.ToLower()))

或:

searchList.Where(x => x.subject.IndexOf(searchControl.subject, StringComparison.OrdinalIgnoreCase) >= 0)

答案 1 :(得分:0)

您需要使用StringComparison,如下所示:

 searchList = searchList.Where(x => x.subject.Contains(searchControl.subject,StringComparison.CurrentCultureIgnoreCase)).ToList();

通过使用它,您可以忽略大小写。