To ignore both case and arguments, you can use string.Compare() with IgnoreNonSpace and IgnoreCase , for example:
string s1 = "http://www.buroteknik.com/metylan-c387c4b0ft-tarafli-bant-12cm-x25mt_154202.html"; string s2 = "http://www.buroteknik.com/METYLAN-C387C4B0FT-TARAFLI-BANT-12cm-x25mt_154202.html"; string s3 = "http://www.buroteknik.com/METYLAN-C387C4B0FT-TARAFLı-BANT-12cm-x25mt_154202.html"; Console.WriteLine(string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase)); Console.WriteLine(string.Compare(s2, s3, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase));
In response to your comments below, this works for tarafli and TARAFLİ .
The following code prints 0, meaning the lines are equal :
string s1 = "tarafli"; string s2 = "TARAFLİ"; Console.WriteLine(string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase));
And here he uses Turkish culture (I guess what the right culture is). This also prints 0:
string s1 = "tarafli"; string s2 = "TARAFLİ"; var trlocale = CultureInfo.GetCultureInfo("tr-TR"); Console.WriteLine(string.Compare(s1, s2, trlocale, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase));
Matthew watson
source share