Harflerin durumunu görmezden gelen 2 dizeyi karşılaştırmanın en iyi yolu , bir sıralı yoksayma büyük / küçük harf dizesi karşılaştırmasını belirten String.Equals statik yöntemini kullanmaktır . Bu aynı zamanda en hızlı yoldur, dizeleri küçük veya büyük harfe dönüştürmekten ve daha sonra karşılaştırmaktan çok daha hızlıdır.
Her iki yaklaşımın performansını test ettim ve ordinal görmezden gelme durumu dizesi karşılaştırması 9 kat daha hızlıydı ! Dizeleri küçük veya büyük harfe dönüştürmekten daha güvenilirdir (Türkçe i sorununa bakın). Bu nedenle, dizeleri eşitlikle karşılaştırmak için her zaman String.Equals yöntemini kullanın:
String.Equals(string1, string2, StringComparison.OrdinalIgnoreCase);
Kültüre özgü bir dize karşılaştırması yapmak istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
String.Equals(string1, string2, StringComparison.CurrentCultureIgnoreCase);
İkinci örnekte, geçerli kültürün dize karşılaştırma mantığını kullandığını ve bu da onu ilk örnekte "sıralı yoksayma durumu" karşılaştırmasından daha yavaş hale getirdiğini, bu nedenle kültüre özgü dize karşılaştırma mantığına ihtiyacınız yoksa ve maksimum performanstan sonra, "ordinal ignore case" karşılaştırmasını kullanın.
Daha fazla bilgi için blogumdaki hikayenin tamamını okuyun .