В некоторых локалях результат будет разный. Пример:
var a ="i";var b ="I";Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture("tr-TR");Console.WriteLine(string.Compare(a.ToUpper(),b.ToUpper())); //'1'Console.WriteLine(string.Compare(a, b,StringComparison.OrdinalIgnoreCase)); //'0'