Tob*_*bon 130

您可以创建自己的扩展方法来执行此操作:

public static bool Contains(this string source, string toCheck, StringComparison comp)
  {
    return source != null && toCheck != null && source.IndexOf(toCheck, comp) >= 0;
  }
Run Code Online (Sandbox Code Playgroud)

然后打电话:

 mystring.Contains(myStringToCheck, StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

  • @ Moo-Juice是的,因为它很熟悉:) http://stackoverflow.com/a/444818/447156 (6认同)
  • 我建议调用函数以外的东西,而不是与框架中的内容完全匹配,如首字母+包含.我用这种方法做了很多事情.我的首字母是PS所以我有psContains,psStartsWith,psEndsWith等.我认为它应该是不同的原因是你可以告诉,只需通过阅读代码,它将做什么.此外,如果签名兼容,编译器可能不喜欢它.如果它们足够兼容,那么编译无助于找到您的扩展程序是否在运行中.扩展是Dotnet的真正宝石.如果使用正确:) (5认同)
  • 通过将其包装在扩展方法中,这可以说是最好的答案. (2认同)

joe*_*joe 44

您可以使用:

if (myString1.IndexOf("AbC", StringComparison.OrdinalIgnoreCase) >=0) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

这适用于任何.NET版本.

  • 在你的答案中有两个错别字,否则很好;-)它应该(显然)`StringComparison.OrdinalIgnoreCase` (3认同)

Kam*_*ski 10

bool b = list.Contains("Hello", StringComparer.CurrentCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

[编辑]扩展代码:

public static bool Contains(this string source, string cont
                                                    , StringComparison compare)
{
    return source.IndexOf(cont, compare) >= 0;
}
Run Code Online (Sandbox Code Playgroud)

这可能工作:)

  • 标准C#中不存在此方法 (13认同)