架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 261|回复: 0

[资料] 在C#中使用忽略大小写的string.Contains方法

[复制链接]
跳转到指定楼层
楼主
发表于 2019-6-20 23:24:09
zu
在C#中比较源字符串是否包含目标字符串,我们可以使用以下方法:
  1. source.Contains(target)
  2. source.IndexOf(target) >= 0;
复制代码



相对而言 Contains 方法更符合直觉,因为它直接返回了一个布尔值,但当我们的对于需要忽略大小写时只能使用 IndexOf 支持 StringComparison 参数的重载方法,但是这个方法可能不够符合语义(返回值可能是-1,0,或者大于0),虽然这种情况下很多人或许会将源字符串和目标字符串都转换为大写或小写再对比,但这样未免太低效了,我们可以直接定义一个支持StringComparison参数的扩展方法:

  1. public static bool Contains(this string source, string value, StringComparison comparisonType)
  2.     {
  3.         return (source.IndexOf(value, comparisonType) >= 0);
  4.     }
复制代码

其实.NET 类库中的 Contains 方法的也是基于 IndexOf 方法的:

  1. // #mscorlib/system/string.cs
  2.     [Pure]
  3.     public bool Contains( string value ) {
  4.         return ( IndexOf(value, StringComparison.Ordinal) >=0 );
  5.     }
复制代码

参考

https://referencesource.microsoft.com/#mscorlib/system/string.cs,428c5c9954dea844





上一篇:C# listview控件某个单元格颜色
下一篇:.NET Core中使用EF Core MySQL 数据迁移操作
帖子永久地址: 

架构师_程序员 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与架构师_程序员享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和架构师_程序员的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、架构师_程序员管理员和版主有权不事先通知发贴者而删除本文

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2019-9-17 19:42

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表