我有以下代码
var returnData = DemoData.Books.AsQueryable();
if (criteria.Author != string.Empty)
{
returnData = returnData.Where(x => x.Author.Contains(criteria.Author));
}
如何使where子句不区分大小写?
您可以使用ToLower()
功能。ToLower
将字符串全部更改为小写。它可以转换整个字符串,而不会更改已经为小写字母或数字的字母。它复制一个字符串并返回对新字符串的引用。因此,criteria.Author.ToLower()
在查询外部进行声明始终是更好的选择。
string lowerAuthor = criteria.Author.ToLower();
returnData = returnData.Where
(x => x.Author.ToLower().Contains(lowerAuthor));
您还可以IndexOf
对StringComparison
枚举使用重载。它会给您比更好的性能ToLower()
。此重载的签名是:
int string.IndexOf(string value, StringComparison comparisonType);
returnData = returnData.Where
(x => x.Author.IndexOf(criteria.Author, StringComparison.CurrentCultureIgnoreCase) != -1);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句