2009-08-31 3 views
2

Iは、例えば、正/負の数字を含む文字列比較する場合:String.CompareToはどのように機能しますか?

int res1 = "-1".CompareTo("1"); 
int res2 = "-1".CompareTo("2"); 

をRES1 1.
RES2に等しい等しい-1。

String.CompareToはどのように動作しますか?それはMSDNから...それは順序が "2 -1 1" である

+1

C#は、これらの値を数値として比較するスクリプト言語のようには機能しません。実際に数値を比較する場合は、数値などの数値型に変換する必要があります。 – ConsultUtah

+0

オプションはありません。私は文字列をソートしていました。それらの文字列はちょうど最後(同じ開始)に数字を持っていて、ソート順は変わっていました。 – Kevin

答えて

8

を意味します:

それらに割り当てられた特別な重みを持っているかもしれません 特定の英数字以外の文字を。たとえば、ハイフン( " - ") は、 が割り当てられており、 ソート済みリスト内に「coop」と 「co-op」が隣り合って表示されるように、非常に小さい重みが割り当てられている可能性があります。

編集:これはstring.Compareによって使用されるCompareOptionsの列挙に関連しています。

+0

これは、これまでのところ最高の答えです。何かを仮定し、その仮定から行動が正当だと主張するのではなく、実際の奇妙さに対処するからです。 – Sean

関連する問題