回答

收藏

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

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

有没有办法让下面的回归成真?
' T' v) R) P. W# s* U
    string title = "ASTRINGTOTEST";title.Contains("string");
    4 S3 t0 t) P& h/ \  r" C6 S
似乎没有允许我设置过载来区分大小写。目前我把它们都写了,但是很愚蠢(我指的是上下大小写带来的i18n问题)。
8 g+ h- W) ^+ ]  w( |! t                                                               
9 c$ Y) y8 `: v* ~3 v! i  Q    解决方案:                                                                  Z) m. ~" b( p, B: Z5 S: q) r
                                                                您可以使用String.IndexOfMethod并StringComparison.OrdinalIgnoreCase作为搜索类型的传输:
2 E4 A$ R& {$ U9 U0 }5 X
    string title = "STRING";bool contains = title.IndexOf("string",StringComparison.OrdinalIgnoreCase) >= 0;
    - T- r' s6 q2 l2 A% v4 [
更好地为字符串定义一种新的扩展方法:
2 A& h4 K$ V0 N- h  U& n5 y

    2 F9 q6 m, Z% X
  • 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;* Y6 |. n& C1 E
用法:
4 |$ a2 F7 s* N7 v# @" o: Z5 n
    string title = "STRING";bool contains = title.Contains("string",StringComparison.OrdinalIgnoreCase);
    ! d1 Y7 v& o9 c: ?% V6 h- x# E
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则