为了账号安全,请及时绑定邮箱和手机立即绑定

不区分大小写'包含(字符串)'

不区分大小写'包含(字符串)'

FFIVE 2019-05-27 14:45:06
不区分大小写'包含(字符串)'有没有办法让以下返回true?string title = "ASTRINGTOTEST";title.Contains("string");似乎没有一个过载允许我设置区分大小写。目前我大概他们两个,但这只是愚蠢(我指的是上下套管带来的i18n问题)。更新这个问题是古老的,从那时起我就意识到,如果你想完全研究它,我会要求一个简单的答案来解决一个非常庞大和困难的话题。对于大多数情况,在单语言的英语代码库中,这个答案就足够了。我怀疑是因为大多数人来到这个类别这是最受欢迎的答案。然而,这个答案提出了一个固有的问题,即我们无法比较文本不区分大小写,直到我们知道两个文本是相同的文化并且我们知道文化是什么。这可能是一个不太受欢迎的答案,但我认为它更正确,这就是为什么我这样标记它。
查看完整描述

4 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

您可以使用String.IndexOf方法并将其StringComparison.OrdinalIgnoreCase作为要使用的搜索类型传递:

string title = "STRING";bool contains = title.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;

更好的是为字符串定义一个新的扩展方法:

public static class StringExtensions{
    public static bool Contains(this string source, string toCheck, StringComparison comp)
    {
        return source?.IndexOf(toCheck, comp) >= 0;
    }}

请注意,对于旧版本,C#6.0(VS 2015)可以使用空传播 ?.

if (source == null) return false;return source.IndexOf(toCheck, comp) >= 0;

用法:

string title = "STRING";bool contains = title.Contains("string", StringComparison.OrdinalIgnoreCase);


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 1144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信