Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使String.Contains不区分大小写?_C#_.net_Vb.net_String_Case Insensitive - Fatal编程技术网

C# 如何使String.Contains不区分大小写?

C# 如何使String.Contains不区分大小写?,c#,.net,vb.net,string,case-insensitive,C#,.net,Vb.net,String,Case Insensitive,如何使以下内容不区分大小写 myString1.Contains("AbC") [编辑]分机代码: public static bool Contains(this string source, string cont , StringComparison compare) { return source.IndexOf(cont, compare) >= 0; } 这可能有

如何使以下内容不区分大小写

myString1.Contains("AbC")
[编辑]分机代码:

public static bool Contains(this string source, string cont
                                                    , StringComparison compare)
{
    return source.IndexOf(cont, compare) >= 0;
}
这可能有效:)

您可以使用:

if (myString1.IndexOf("AbC", StringComparison.OrdinalIgnoreCase) >=0) {
    //...
}

这适用于任何.NET版本。

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

public static bool Contains(this string source, string toCheck, StringComparison comp)
  {
    return source != null && toCheck != null && source.IndexOf(toCheck, comp) >= 0;
  }
然后打电话:

 mystring.Contains(myStringToCheck, StringComparison.OrdinalIgnoreCase);

标准C#中没有这种方法,这就是问题的原因。。。谢谢@trippino@trippino用扩展代码编辑我的答案感谢上帝的回答这可以说是最好的答案,将其包装在扩展方法中。@Moo Juice Yes,因为它很熟悉:)我建议调用该函数,而不是与框架中的某个内容(如您的首字母缩写+Contains)完全匹配。我在很多事情上都使用这种方法。我的首字母是PS,所以我有psContains,psStartsWith,psEndsWith,等等。我认为它应该不同的原因是,你可以通过阅读代码知道它将要做什么。此外,如果签名兼容,编译器可能不喜欢它。如果它们足够兼容,编译将无法帮助您发现扩展是否起作用。扩展是Dotnet真正的瑰宝。如果使用正确:)我希望我能给你多投一票!您应该检查字符串和toCheck参数是否为null。如果其中一个为null,则应返回false。否则它会抛出一个异常。或者是MSDN文章的副本,建议“另请参阅:IndexOf”…好吧,如果这个问题在VB.Net中要求答案,那么它不是100%重复的,因为VB.Net具有C#没有的特性,比如可以在这里使用的
like
操作符。他标记了这两种语言,所以他可能不关心解决方案是哪一个,所以复制品完全回答了这个问题。无论如何,如果他用onlt vb.net编辑他的问题,那么它将自动进入重新打开队列它(显然)应该是
StringComparison.ordinallingorecase
 mystring.Contains(myStringToCheck, StringComparison.OrdinalIgnoreCase);