5

「」の比較

string.Compare("î", "I ", StringComparison.CurrentCulture) -- returns -1
string.Compare("î", "I ", StringComparison.CurrentCultureIgnoreCase) -- returns -1
string.Compare("î", "I", StringComparison.CurrentCulture) -- returns 1 (unexpected)
string.Compare("î", "I", StringComparison.CurrentCultureIgnoreCase) -- returns 1  (unexpected)

「い」で

string.Compare("i", "I ", StringComparison.CurrentCulture) -- returns -1
string.Compare("i", "I ", StringComparison.CurrentCultureIgnoreCase) -- returns -1
string.Compare("i", "I", StringComparison.CurrentCulture) -- returns -1
string.Compare("i", "I", StringComparison.CurrentCultureIgnoreCase) -- returns 0

現在の文化は en-GB でした。これらはすべて 1 を返すと思います。文字列が長くなると並べ替え順序が変わるのはなぜですか?

4

4 に答える 4

2

ドキュメントから

不等式が発見されるか、両方の文字列が比較されると、比較は終了します。ただし、2 つの文字列が一方の文字列の末尾と等しく、他方の文字列に文字が残っている場合は、文字が残っている文字列の方が大きいと見なされます。戻り値は、最後に実行された比較の結果です。

于 2013-05-17T11:07:23.873 に答える
0

基本的に、文字列の長さをソートするときに問題になるためです

「a」は「a」よりも小さいですよね?理にかなっています。

于 2013-05-17T11:11:17.843 に答える
-1

Ordinal動作が奇妙です。それは説明しますが、ここで暗示される国際的な文脈を考えると、比較を使用しない理由がわかりません。

詳細については、この記事をお読みください。

于 2013-05-17T11:27:12.777 に答える