回答

收藏

不区分大小写的'Contains(string)'

技术问答 技术问答 234 人阅读 | 0 人回复 | 2023-09-11

有没有办法让下面的回归成真?
$ g; I! ?' U6 e# w% V1 o
    string title = "ASTRINGTOTEST";title.Contains("string");- ~1 |/ @4 G! ~3 A! B6 [$ t+ ?
似乎没有允许我设置过载来区分大小写。目前我把它们都写了,但是很愚蠢(我指的是上下大小写带来的i18n问题)。
  U) a4 U1 P- E% w9 y                                                               
2 p" ]! @' S( L. D+ g3 H    解决方案:                                                               
$ w, a' W: E6 |7 t                                                                您可以使用String.IndexOfMethod并StringComparison.OrdinalIgnoreCase作为搜索类型的传输:
( t( N7 G& |: ]& S% e) v
    string title = "STRING";bool contains = title.IndexOf("string",StringComparison.OrdinalIgnoreCase) >= 0;
    ; ~( y2 s* A3 g( f$ e5 Q: o) o
更好地为字符串定义一种新的扩展方法:' C4 |2 O0 ]1 ?) A" }6 W' c  R

    : p; r9 ?. q) l  a8 e
  • 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;
    ' G6 b' j, e) T
用法:7 F" g  a( X9 O0 S2 M
    string title = "STRING";bool contains = title.Contains("string",StringComparison.OrdinalIgnoreCase);
    3 f  k, @: W; y1 i; Y1 W
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则