比较字符串时如何忽略大小写?我正在使用linq来搜索列表(用户在文本框中输入查询)。我希望它不区分大小写,并尝试使用IgnoreCase,但我不知道将它放在哪里....我知道我可以使用大写或小写,但我想听听是否有人有其他选择?最佳做法是什么?正则表达式似乎也不起作用?stringsearchQuery=tbSearchQuery.Text;varsomething=fromxinywherex.Subject.Contains(searchQuery)选择x;使用string.Compare:varsomething=fromxinywherestring.Compare(x.Subject,searchQuery,true)>=0selectx;这也处理字符串为空的任何情况。由于还没有其他人提出建议,我建议使用staticString.Equals这样您就不必担心空值,只需返回所需的信息即可。String.Compare也可以,但您不是对字符串进行排序(整数返回值的原因),只是确定它们在不区分大小写的比较中是否相等。varsomething=fromxinywherestring.Equals(x.Subject,searchQuery,StringComparison.CurrentCultureIgnoreCase)selectx;stringsearchQuery=tbSearchQuery.Text;varsomething=fromxinywherex.Subject.IndexOf(searchQuery,StringComparison.OrdinalIgnoreCase)>=0selectx;我使用以下自己的扩展(对于普通字符串)publicstaticboolContains(thisstringsource,stringtoCheck,StringComparisoncomp){returnsource.IndexOf(toCheck,comp)>=0;}publicstaticboolContainsIgnoreCase(thisstringsource,stringtoCheck){returnsource.IndexOf(toCheck,StringComparison.InvariantCultureIgnoreCase)>=0;}HTHtrystringsearchQuery=tbSearchQuery.Text;varsomething=fromxinywherex.Subject.如果您使用的是LINQ-to-SQL或实体框架,IndexOf(searchQuery,StringComparison.OrdinalIgnoreCase)!=-1将修复并设置表定义中的排序规则。比较它们的唯一方法是ToUpper(或ToLower,但最好是ToUpper,如http://www.siao2.com/2007/10/01/5218976.aspx中所述)这两个部分比较。你可以使用IndexOf吗?stringsearchQuery=tbSearchQuery.Text;varsomething=fromxinywherex.Subject.IndexOf(searchQuery,StringComparison.OrdinalIgnoreCase)>=0selectx;我是第二种扩展方法。我有一节课。只需将它包含在您的项目中并引用您的命名空间。使用系统;namespaceYOURNAMESPACE{publicstaticclassStringExtensionMethods{//////允许进行字符串比较的扩展方法,您可以在其中提供比较类型///(即忽略大小写等)。//////比较字符串。///比较类型-枚举,使用OrdinalIgnoreCase忽略大小写。///如果字符串存在于原始字符串中,则返回true。publicstaticboolContains(thisstringoriginal,stringvalue,StringComparisoncomparisonType){returnoriginal.IndexOf(value,comparisonType)>=0;下面是一个使用它的LINQ查询示例:varresults=frompromotioninresponsewhereString.IsNullOrEmpty(find.Code)||(promotion.Code!=null&&promotion.Code.Contains(find.Code,StringComparison.OrdinalIgnoreCase))其中String.IsNullOrEmpty(find.Name)||(promotion.Name!=null&&promotion.Name.Contains(find.Name,StringComparison.OrdinalIgnoreCase))选择促销;以上就是C#学习教程:比较字符串时如何忽略大小写?分享的所有内容,如果对大家有用需要多了解学习C#教程,希望大家多多关注这篇文章。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
