2013-07-10 16 views
56

Aşağıdaki büyük/küçük harf duyarlılığı nasıl yapabilirim?String.Contains nasıl büyük harf duyarsız?

myString1.Contains("AbC") 
+1

Ya (http [String.Contains] için MSDN makalenin yinelenen: // msdn. microsoft.com/en-us/library/dy85x1sa.aspx) "Ayrıca bakınız: IndexOf" ... –

+0

Peki, bu soru VB.Net, VB beri VB.Net cevaplar için sorar% 100 .Net C# 'nin sahip olmadığı özelliklere sahiptir, burada kullanılan "LIKE" operatörü gibi. – sloth

+0

Her iki dili de etiketledi, bu yüzden çözümün hangisi olduğunu umursamıyor, bu nedenle kopya bu soruya tamamen cevap veriyor. Neyse, eğer sorusunu onlt vb.net ile düzenlerse, otomatik olarak yeniden açılacak kuyruğa girecektir. – SysDragon

cevap

10
bool b = list.Contains("Hello", StringComparer.CurrentCultureIgnoreCase); 

[DÜZENLE] uzantısı kodu:

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

Bu işe yarayabilir :)

+13

Bu yöntem ;-) ... Aksi iyi bu cevap Yanıtınızda –

+1

bulunmaz StringComparison.OrdinalIgnoreCase' – iGanja

+0

@trippino teşekkürler Bu soru için nedenidir standart C# – wudzik

39

Sen kullanabilirsiniz:

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

Bu, herhangi bir .NET sürümü ile çalışır .

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

Sonra çağırır:

+3

İki yazım için uzatma kodu – andreas

110

Bunu yapmak için kendi uzantısı yöntemi oluşturabilir

mystring.Contains(myStringToCheck, StringComparison.OrdinalIgnoreCase); 
+2

Olması Gerekenler Bu, bir uzantı yöntemiyle sarmalanarak en iyi yanıttır. Moo-Juice @ –

+6

Evet bu tanıdık olduğu için :) http://stackoverflow.com/a/444818/447156 –

+4

I + İçeren baş harfleri gibi çerçevesinde şeyle tam bir eşleşme dışında fonksiyonu şey çağırarak öneriyoruz. Bu yaklaşımı bir sürü şey için kullanıyorum. Ben psContains vb O kadar bunu yapmaya ne oluyor, sadece kod okuyarak, söyleyebilir olan farklı olması gerektiğini düşünüyorum nedenle psStartsWith, psEndsWith var bu yüzden benim baş harfleri PS vardır. Ayrıca, imzalar uyumluysa, derleyici bundan hoşlanmayabilir. Yeterince uyumlu olmaları durumunda, derleme, uzantılarınızın oyunda olup olmadığını öğrenmenize yardımcı olmaz. Uzantılar Dotnet'in gerçek bir gemisidir. Doğru kullanılırsa :) –

İlgili konular