不区分大小写的'Contains(string)'
技术问答
344 人阅读
|
0 人回复
|
2023-09-11
|
有没有办法让下面的回归成真?
( l4 B0 v( d9 Astring title = "ASTRINGTOTEST";title.Contains("string");, C0 q7 }+ U* Y# s. E
似乎没有允许我设置过载来区分大小写。目前我把它们都写了,但是很愚蠢(我指的是上下大小写带来的i18n问题)。
5 X# \# H+ p+ B $ ~" r( g9 R% w! W5 e
解决方案:
1 N3 J; Z& k6 g+ b* j# G9 b9 i( R: s 您可以使用String.IndexOfMethod并StringComparison.OrdinalIgnoreCase作为搜索类型的传输:
1 T" w0 r- g. H; mstring title = "STRING";bool contains = title.IndexOf("string",StringComparison.OrdinalIgnoreCase) >= 0;; d+ X# w/ _; ?: Y: @) D! T/ M6 c; M
更好地为字符串定义一种新的扩展方法:; l. A, p% _; k6 C/ u- r0 D
/ o- O M% g6 n9 O& G& v
- public static class StringExtensions{ public static bool Contains(this string source,string toCheck,StringComparison comp) return source?.IndexOf(toCheck,comp) >= code]请注意,自 C# 6.0 (VS 2015年 可使用空传播 .,使用旧版本[code]if (source == null) return false;return source.IndexOf(toCheck,comp) >= 0;
. q& Q, e4 ?: e+ X( h 用法:
. k- M- z2 C) u }! gstring title = "STRING";bool contains = title.Contains("string",StringComparison.OrdinalIgnoreCase);$ n6 V( C" A/ ~; ^$ v
|
|
|
|
|
|