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);