文字列の比較と文字の比較に関する質問があります。
文字>
と0
(ゼロ)には、それに応じて次の10進値が62
あり48
ます。
次のコードで2つの文字を比較すると、値が得られますTrue
(これは正しいです)
Console.WriteLine('>' > '0');
次のコードで2つの1文字の文字列を比較すると、 「>」が「0」未満で-1
あることを示す値が得られます(デフォルトのカルチャは英語です) 。
Console.WriteLine(string.Compare(">", "0"));
一方、次のコードの「3」と「1」(51
および49
コード値)を比較すると、 1
(予想どおり)が返されます。
Console.WriteLine(string.Compare("3", "1"));
また、string.Compare(string str1, string str2)
ドキュメントには次のように書かれています。
比較では、現在のカルチャを使用して、大文字と小文字の規則や個々の文字のアルファベット順などのカルチャ固有の情報を取得します。
文字列の比較がどのように実装されているか、たとえば個々の文字のアルファベット順がどのように計算されるかなどを説明(またはいくつかのドキュメントへの参照を提供)できますか?