C#包含不区分大小写的搜索

用户名

我有以下代码

var returnData = DemoData.Books.AsQueryable();

if (criteria.Author != string.Empty)
{
    returnData = returnData.Where(x => x.Author.Contains(criteria.Author));
}

如何使where子句不区分大小写?

法哈德·贾比耶夫(Farhad Jabiyev)
  1. 您可以使用ToLower()功能。ToLower将字符串全部更改为小写。它可以转换整个字符串,而不会更改已经为小写字母或数字的字母。它复制一个字符串并返回对新字符串的引用。因此,criteria.Author.ToLower()在查询外部进行声明始终是更好的选择

    string lowerAuthor = criteria.Author.ToLower();
    returnData = returnData.Where
            (x => x.Author.ToLower().Contains(lowerAuthor));
    
  2. 您还可以IndexOfStringComparison枚举使用重载它会给您比更好的性能ToLower()此重载的签名是:

    int string.IndexOf(string value, StringComparison comparisonType);
    

    returnData = returnData.Where
        (x => x.Author.IndexOf(criteria.Author, StringComparison.CurrentCultureIgnoreCase) != -1);
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章