次のコードがあります
var s1 = "ABzzzzz2";
var s2 = "äbzzzzz1";
var cmp = StringComparison.InvariantCultureIgnoreCase;
Console.WriteLine(string.Compare(s1, 0, s2, 0, 7, cmp)); //prints -1
Console.WriteLine(string.Compare(s1, 0, s2, 0, 8, cmp)); //prints 1
最初の文字列の一部が 2 番目の文字列の一部よりも小さいのに、最初の文字列全体が 2 番目の文字列全体よりも大きいというのはどうしてでしょうか?
x64、.net 2.0、3.5、4.0でテストしました