3

これをイミディエイト ウィンドウに入力すると

String.Compare("AA", "SA");

1の結果が得られます

確かにこれは間違っていますか?AA は SA よりも小さいので、-1 であるべきではありませんか?

私は.NET 4を実行しています

4

1 に答える 1

7

デンマークの文化では、「AA」は 1 文字の「Å」として扱われ、アルファベット順では「Z」の後に来ます。

CultureInfo cultureInfo = CultureInfo.GetCultureInfo("da-DK");
int comparision = String.Compare("AA", "SA", false, cultureInfo);
Console.WriteLine(comparision);

結果:

1

必要な結果を得るには、インバリアント カルチャ (または、必要な並べ替え順序を持つ特定のカルチャ) を使用できます。

CultureInfo cultureInfo = CultureInfo.InvariantCulture;
int comparision = String.Compare("AA", "SA", false, cultureInfo);
Console.WriteLine(comparision);

結果:

-1
于 2012-09-27T11:38:33.243 に答える